리스트에서 항목이 각각 몇 번 나왔는지 세려면 collections.Counter에 리스트를 넘기세요. 항목이 키가 되고, 나온 횟수가 값이 됩니다. 결과를 일반 딕셔너리로 넘겨야 한다면 dict()로 감쌀 수 있습니다.
from collections import Counter
fruits = ["배", "자두", "배", "배", "자두"]
counts = Counter(fruits)
print(dict(counts))
{'배': 3, '자두': 2}
fruits에서 배가 나온 자리를 세면 3, 자두가 나온 자리를 세면 2입니다. 같은 과일이 입력에서 떨어져 있어도 한 항목의 개수에 더해집니다. 키로 쓸 항목은 해시 가능해야 합니다. 위 예의 문자열은 그대로 셀 수 있고, 목록 안의 리스트 자체는 키로 쓸 수 없습니다.
나오지 않은 항목을 조회하면
counts["사과"]는 목록에 사과가 없을 때 0을 돌려줍니다. 조회만 한 뒤에는 사과가 키 목록에 없고, 값을 직접 대입하면 0을 값으로 가진 키가 생깁니다.
from collections import Counter
counts = Counter(["배", "자두", "배"])
print(counts["사과"])
print("사과" in counts)
counts["사과"] = 0
print("사과" in counts)
print(dict(counts))
0
False
True
{'배': 2, '자두': 1, '사과': 0}
등장 횟수만 필요하면 counts["사과"]로 읽을 수 있습니다. 0으로 등록된 항목과 등록된 적 없는 항목을 구별해야 할 때는 "사과" in counts로 확인하세요. dict(counts)에는 실제로 들어 있는 키와 값이 담깁니다.
과일 목록은 가상 입력입니다. 예제는 Windows의 Python 3.14.3에서 실행했습니다. Python의 Counter 문서에서 생성과 조회 규칙을 확인할 수 있습니다.