
같은 혈액형의 사람 수를 구하라
문제
여러 사람의 혈액형(A, B, AB, O)에 대한 정보가 담긴 list가 있다.
이를 이용하여 key는 혈액형의 종류, value는 사람 수인 dictionary를 만드시오.
blood_types = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']
풀이는 아래~~
생각 해보기
1. 딕셔너리를 만들어야 한다.
2. key값을 혈액형으로 만든다.
3. value는 리스트의 같은 값을 가지는 문자열의 수
4. for문을 돌려 딕셔너리에 추가하면 대충 나올 것 같다....
풀이
blood_types = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']
person_dict = {}
for blood in blood_types:
if blood in person_dict:
person_dict[blood] += 1
else:
person_dict[blood] = 1
print(person_dict) {'A': 5, 'AB': 2, 'B': 3, 'O': 1}
함수로 만들 경우
def count_blood(lst):
new_dict = {}
for i in lst:
if i in new_dict:
new_dict[i] += 1
else:
new_dict[i] = 1
return new_dict
count_blood([
'A', 'B', 'A', 'O', 'AB', 'AB',
'O', 'A', 'B', 'O', 'B', 'AB',
]) # => {'A': 3, 'B': 3, 'O': 3, 'AB': 3}
해설
blood_types란 리스트가 주어지고
person_dic라는 새로운 딕셔너리를 만들었다. 문제는 지금부터다. 여기에 어떻게 넣어야 할까?
1. for문을 돌려 리스트를 순회한다.
2. 여기에 조건문을 더해준다.
조건
blood가 person_dic의 key값으로 존재한다면, value에 +1
아니라면, key값에 blood를 넣어주고, value에 1를 기본 설정
(예로 첫 blood는 존재하지 않아 A라는 key와 1이라는 value를 만들 것)
팁
딕셔너리 추가 방법!
person_dict이라는 빈 딕셔너리를 만들었다. 이때 딕셔너리 추가 방법?
person_dict['key로 할 값'] = value로 만들 값
만약 key는 'a' value는 1로 하고 싶다면,
person_dic['a'] = 1
'실습 문제' 카테고리의 다른 글
숫자로 사각형 만들기 (파이썬) (0) | 2022.07.30 |
---|---|
카 쉐어링 요금 계산 (파이썬) (0) | 2022.07.29 |
두 명씩 짝을 지어보자 클래스사용 (파이썬) (0) | 2022.07.28 |
콜라츠 추측(Collatz conjecture) 변형 (파이썬) (0) | 2022.07.27 |
무엇이 중복일까 ? (파이썬) (0) | 2022.07.26 |