본문 바로가기

Python/혼자 공부하는 파이썬(개정판) 도전문제

혼공파 4-2 연습문제 2번

Python 딕셔너리 이해 (01)

numbers = [6,5,3,4,6,3,6,8,4,9,4,6,2,3]
counter = {}

for number in numbers
    if number in counter:  
        counter[number]  = counter[number] +1  
    else
        counter[number] = 1 
print(counter
일주일간 나를 괴롭힌 코드다.

 

이해하고자 여러 자료를 찾아봤으나 명확하게 이해하기 어려웠다.

나와 같은 문제를 겪는 분을 위해..


 

numbers = [여긴 사실 아무 숫자나 상관없다.]

# 이건 리스트 생성
counter = {}

# 아무것도 없는 빈 딕셔너리 생성 

for number in numbers: 

#리스트에 입력된 숫자 만큼 반복 (위 예제에 15개 숫자가 있으니 01 ~14까지 15번 반복)

 

    if number in counter:  

#만약 첫번째 숫자가 카운터 딕셔너리 안에 있다면 (처음에는 아무것도 없는 빈 상태다.{} 그러므로 pass) 


        counter[number]  = counter[number] +1  
    else: 
        counter[number] = 1 

#예제로 보면 counter[6] = 1 즉 {6: 1} 이라는 거다. 딕셔너리 0번 숫자인 6에 1을 넣는것  


print(counter) 


for number in numbers: 

#리스트에 입력된 숫자 만큼 반복 (위 예제에 15개 숫자가 있으니 01 ~14까지 15번 반복)

 

    if number in counter:  

#만약 첫번째 숫자가 카운터 딕셔너리 안에 있다면 (이번에는 6이 하나 들어있다 .{6: 1} ) 

 

        counter[number]  = counter[number] +1  

# counter[6] = counter[6] + 1 // 한마디로 6: 1에 다가 1을 더하라는 것 즉 6: 2

6이 총 4개 들어있으니 3번 반복 (첫번째는 없었음)

 

    else: 
        counter[number] = 1 

print(counter) 


출력화면 

{6: 4, 5: 1, 3: 3, 4: 3, 8: 1, 9: 1, 2: 1}

 

{있는 숫자 : 존재 갯수}  이렇게 된다.


이해가 되셨길 바랍니다. (근데 저도 초보라 잘 모름)