Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[네이버 부스트캠프: 모두를 위한 파이썬] 9장. 딕셔너리 본문

🥧 Python/💭 네이버 부캠 모위파

[네이버 부스트캠프: 모두를 위한 파이썬] 9장. 딕셔너리

썸머몽 2023. 3. 10. 15:59
728x90

📌  딕셔너리란?

앞에서 리스트를 공부하면서 언급했던 컬렉션.

컬렉션은 하나의 변수 안에 여러 개의 값을 담을 수 있는 캐리어 같은 놈이다.

 

오늘 배울 딕셔너리와 리스트는 어떤 차이가 있을까?

리스트란 순서를 유지하는 값들의 '선형 컬렉션' 이라면,

딕셔너리는 고유의 라벨을 갖고 있는 값을 넣고 있는 컬렉션이다.

 

즉 키:163, 나이:21 이런 식으로 Key:Value가 담겨 있다.

 

빈 리스트를 생성하는 것처럼, 빈 딕셔너리를 생성하는 법도 똑같다.

다만 리스트는 안에 무언가를 추가할 때 list.append() 이런 메서드를 사용했는데,

딕셔너리는 직접 넣어준다. 또한 딕셔너리는 기본적으로 저장되는 순서가 없다.

 

dic = dict()
dic['age'] = 21
dic['birthday'] = 18

>>> print(dic)
{'age':21, 'birthday':18}

dic['birthday'] = 20

>>> print(dic)
{'age':21, 'birthday':20}

 

특히 딕셔너리에서는 get매서드가 있는데, 키가 딕셔너리에 있는지 확인하고

없다면 기본값으로 설정하는 확인 패턴은 아주 많이 쓰여서 이 일을 하는 get()이라는 매서드가 존재한다고 한다.

 

counts = dict()
names = ['a', 'b', 'c', 'a', 'b']
for name in names :
	counts[name] = counts.get(name, 0) +1
print(counts)

print를 하면 어떻게 될까?

{'a': 2, 'b': 2, 'c':1}

 

counts 안에 name이 한번씩 들어가면서 기본값 0을 주었고 1씩 더해 중복된 값들은 2가 나온 모습이다.

 

counts = {'a' : 1, 'b' : 2, 'c' : 3}
for key in counts :
	print(key, counts[key])

이렇게 하면 key 값인 a가 나올 때 counts[a]로 1도 함께 출력된다.

a 1

b 2

c 3 이런 식으로

 

딕셔너리에서는 키나 값이나 아이템(키&값) 형태로 얻을 수 있다.

keys만 달라고 하든지 values만 달라고 하든지 items을 달라고 하든지...

items를 쓸 때는 키&값 형태니까 반드시 변수가 2개여야 한다.

 

hello = {'a':1, 'b':2, 'c':3}
for v, p in hello.items() :
	print(v, p)

더불어 키&값의 형태다보니 반복 변수를 2개 사용해 다룰 수도 있다.

 

뒤로 갈수록 중첩되거나 유사한 문법이 많아서 그렇게 어렵진 않은데,

딕셔너리는 키와 값 2가지를 갖고 있다는 점을 유념해서 활용해야 한다.

728x90