<파이썬 어려웠던 개념 정리 : for ~ 복잡한 함수 인자(43~52)>
my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
my_list = sorted(my_list)
new_list = []
for i in range(11):
if my_list[i] != my_list[i+1]:
new_list.append(my_list[i])
print(new_list)
한참 생각하다가 결정한 것 : count속성. 말 그대로 갯수를 세어 주면 되는 것 아니겠나.
my_list = [1, 2, 3, 4, 5, 1, 2, 3, 7, 9, 9, 7]
for i in my_list:
if my_list.count(i) == 1:
print(i)
성공.
아마 레플잇 문제인 거 같다. 많이 들여쓰니 잘 되었다.
(참고) replit 중 나오는 에러 :
IndentationError: unindent does not match any outer indentation level
들여쓰기 문제인데 탭이나 스페이스를 섞어 쓰면 나온다고 한다.
def list_loop() :
# 아래의 코드를 수정하지 마세요.
my_list = [ 2, 3, 4, 5, 6]
# 아래에 코드를 작성해 주세요.
total = 0
for i in my_list:
total += i
print(total)
# 아래의 코드를 수정하지 마세요.
return total
while <조건문>:
<수행할 문장1>
<수행할 문장2>
<수행할 문장3>
...
<수행할 문장N>
else:
<while문이 종료된 후 수행할 문장1>
<while문이 종료된 후 수행할 문장2>
<while문이 종료된 후 수행할 문장3>
...
<while문이 종료된 후 수행할 문장N>
def find_smallest_integer_divisor(numb):
## 아래 코드를 입력해주세요.
while numb > 0:
for i in range(2, numb+1):
if numb % i == 0:
break
return i
from collections import Counter
def get_occurrence_count(my_list):
# 이 함수를 구현 해주세요
ret = Counter(my_list)
for key in ret:
return key, ret[key]
결과 : 튜플로 한 값만 나온다. 실패.
세 번째 고민 : 아직 배우진 않았지만 구글링 통해 예외처리로 하는 법을 알아냈다.
def get_occurrence_count(my_list):
count = {}
for i in my_list:
try: count[i] += 1
except : count[i] = 1
return count
try : 값이 없으면 1을 더해라
except : 있으면 1이다.
이건 아직까진 마법. 추후 예외처리 공부 후 다시 생각해보기.
여기서 문제점 : team_name을 리턴하면 그냥 말 그대로 팀 네임이 나오지 그에 해당하는 값이 전혀 나오지 않는다. 이를 해결하기 위해서는 일단 팀네임을 리턴했을 때 딸려 나오는 값이 있게 함수를 구현해야 한다. 여기까지는 이해 했다.
두 번째. 그리고 문제에 자료가 없다.
def what_is_my_full_name(**kwargs):
if "정" in kwargs and "우성" in kwargs:
return "정 우성"
if "정" in kwargs and "우성" not in kwargs:
return "정"
if "정" not in kwargs and "우성" in kwargs:
return "우성"
if "정" not in kwargs and "우성" not in kwargs:
return "Nobody"
일일이 대조해가며 if문을 돌려봤으나 nobody 값을 거르지 못해 실패.
(결국 동기분 질문으로 해결)
def what_is_my_full_name(**kwargs):
full_name = kwargs
first_name = full_name.get("first_name", "")
last_name = full_name.get("last_name", "")
if not first_name and not last_name:
return "Nobody"
if first_name and not last_name:
return first_name
if not first_name and last_name:
return last_name
else:
return last_name + " " + first_name
여기서 배운 2가지
x = dictionary.get("key", ""); 값이 없으면 공백