딕셔너리
- 키 : 밸류 형태
- pandas와 큰 연관
- 머신러닝 파라미터적용시 많이 사용
- 리스트와 같이 가장많이 쓰이는 집합자료형
생성
dict1 = {'국어':100, '수학':90, '영어':80}
print(dict1)
dict1['국어'] = 95
dict1['통계'] = 100
print(dict1)
k = dict1.pop('통계')
print(dict1)
print(k) # 밸류가 나온다
{'국어': 100, '수학': 90, '영어': 80}
{'국어': 95, '수학': 90, '영어': 80, '통계': 100}
{'국어': 95, '수학': 90, '영어': 80}
100
인덱싱은 key를 이용해서 가능하고 새로운 key:value도 인덱싱을 사용하여 삽입가능하다.
pop 또한 key를 이용하고 뽑아낸 원소는 value가 반환된다.
슬라이싱은 불가능하다.
물론 문자:숫자가 아닌 다른 경우도 가능하다
keys , values, items
print(list(dict1.keys()))
print(list(dict1.values()))
print(list(dict1.items()))
print(list(dict1.items())[0])
['국어', '수학', '영어']
[95, 90, 80]
[('국어', 95), ('수학', 90), ('영어', 80)]
('국어', 95)
keys 는 key들을 반환한다.
values 는 value들을 반환한다.
items 는 key,value를 튜플로 묶은 쌍들을 반환한다.
for key, value in dict1.items():
print('{}점수는 {}점 입니다'.format(key,value))
국어점수는 95점 입니다
수학점수는 90점 입니다
영어점수는 80점 입니다
이런 식으로 응용가능하다.
추후 게시할 pandas에 행을 추가할 때 주로 딕셔너리를 이용하기 때문에 잘 알아아 둘 필요가 있다.
in
print('국어' in dict1)
print('과학' in dict1)
True
False
get
print(dict1['과학'])
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-32-1a2cdb189a8b> in <module>
----> 1 print(dict1['과학'])
KeyError: '과학'
일반 인덱싱을 이용하면 오류
print(dict1.get('과학'))
print(dict1.get('과학',0))
None
0
get을 이용하면 none 혹은 디폴트로 지정한 녀석을 반환한다.
이를 응용하면 카운트할 때 쉽다.
c_list = ['a','a','c','c','c','a','a','c','a','a','a','b','b','b','b']
count_dic = {}
for spel in c_list:
count_dic[spel] = count_dic.get(spel, 0) + 1
print(count_dic)
{'a': 7, 'c': 4, 'b': 4}
물론 리스트의 count기능을 사용할 수 있지만 리스트의 길이 혹은 문자열의 길이가 셀수없이 길어진다면 모든 경우를 카운트하기에는 무리가 있다.
'python 기초' 카테고리의 다른 글
[python기초] tqdm for문 예상속도, time (0) | 2021.12.06 |
---|---|
[ python 기초 ] lambda, map, filter (0) | 2021.08.27 |
[ python 기초 ] 셋 set (0) | 2021.08.19 |
[ python 기초 ] 튜플 tuple (0) | 2021.08.19 |
[ python 기초 ] 리스트 list (1) | 2021.08.19 |