어느 리스트에 사람 성씨가 있고
그 성씨를 카운트하는 일을 한다고 가정해보자.
반복적인 일을 해야하니 반복문이 들어갈 것이고
카운팅을 한다는 조건이 있으니 조건문이 들어갈 것이다.
counts = dict()
names = ['김', '이', '박', '이', '최', '박', '제갈', '김', '이', '박']
for name in names :
if name in counts:
counts[name] = counts[name] + 1
else :
counts[name] = 1
print(counts)
# {'김': 2, '이': 3, '박': 3, '최': 1, '제갈': 1}
이것의 동작 방식은 아래와 같다.
names 리스트를 하나씩 순회하면서
counts 딕셔너리와 리스트의 이름들을 하나씩 비교한다.
만약 리스트의 이름이 딕셔너리에 있으면
딕셔너리의 이름이 1을 가산하고
그렇지 않다면(리스트의 이름이 딕셔너리에 없으면)
리스트의 이름을 딕셔너리에 1로 추가한다.
for를 모두 순회하면
딕셔너리를 출력한다.
get() 메소드 이용
counts = dict()
names = ['김', '이', '박', '이', '최', '박', '제갈', '김', '이', '박']
for name in names :
counts[name] = counts.get(name, 0) + 1
print(counts)
# {'김': 2, '이': 3, '박': 3, '최': 1, '제갈': 1}
여기서 get은
counts 딕셔너리에 name이 있다면 그 값에 1을 더하고
없다면 name을 키로 새로 만들고 0을 대입하라는 의미이다.
(그 끝에 +1이 되니 counts에 처음 추가가 되더라도 1을 달고 들어간다.)
'했던것들 > PY4E(모두를 위한 파이썬)' 카테고리의 다른 글
(파이썬) 튜플, 딕셔너리, 리스트를 활용한 많이 등장한 단어 Top 10 출력! (0) | 2022.05.28 |
---|---|
(파이썬) 튜플(tuple) (0) | 2022.05.28 |
(파이썬) 딕셔너리(Dictionary) (0) | 2022.05.28 |
(파이썬) 문자열과 리스트를 활용한 값 추출하기 (0) | 2022.05.28 |
(파이썬) 리스트 활용 (몇가지 내장함수) (0) | 2022.05.28 |