순서
1. 딕셔너리란?
2. 딕셔너리 Key : Value 쌍을 추가 및 삭제
3. 딕셔너리 활용
4. 딕셔너리 관련 함수
1. 딕셔너리란?
딕셔너리는 Key와 Value의 쌍 여러 개가 { }로 둘러쌓인 Key와 Value를 한 쌍으로 갖는 자료형.
때문에 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않아도 된다.
(Java Script 에서의 객체와 같다.)
1. 모양
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
2. 예
>>> dic = {'name':'Jin', 'age':'30', 'birth': '0318'}
>>> a = {1: 'hi'}
>>> a = { 'a': [1,2,3]}
2. 딕셔너리 Key : Value 쌍을 추가 및 삭제
1. 추가하기
>>> a = {1: 'a'}
>>> a['name'] = 'Jin'
>>> a
{1: 'a', 'name': 'Jin'}
>>> a[3] = [1,2,3]
>>> a
{1: 'a', 'name': 'Jin', 3: [1, 2, 3]}
2. 삭제하기
>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}
1.
a[x] = 'y'
라고 추가를 한다면 x : 'y' 를 추가한다.
2.
del a[key] 는 해당하는 key 삭제한다. (요솟값을 넣는 리스트와 헷갈리지 말 것)
3. 딕셔너리 활용
1.
>>> a = {1:'a', 2:'b'}
>>> a[1]
'a'
>>> a[2]
'b'
2.
>>> a = {'a':1, 'b':2}
>>> a['a']
1
>>> a['b']
2
1. 을 보면 리스트처럼 요솟값을 불러오는 것 같지만 딕셔너리는 Key 값으로만 Value 값을 가져올 수 있다.
2. 은 1.의 Key와 Value를 뒤집어 놓은 딕셔너리 예시이다.
※ 딕셔너리 주의 사항
딕셔너리의 Key는 변하지 않는(immutable) 값만 사용 가능하다.
따라서, Key로 리스트는 쓸 수 없고 튜플은 쓸 수 있다.
Value에는 상관없이 아무 값이나 넣을 수 있다.
4. 딕셔너리 관련 함수
1. Key 리스트 만들기(keys)
>>> a = {'name': 'jin', 'age': '30', 'birth': '0318'}
>>> a.keys()
dict_keys(['name', 'age', 'birth'])
>>> list(a.keys())
['name', 'phone', 'birth']
2. Value 리스트 만들기(values)
>>> a.values()
dict_values(['jin', '30', '0318'])
>>> list(a.values())
['jin', '30', '0318']
3. Key, Value 쌍 얻기(items)
>>> a.items()
dict_items([('name', 'jin'), ('age', '30'), ('birth', '0318')])
>>> list(a.items())
[('name', 'jin'), ('age', '30'), ('birth', '0318')]
1.
※참고사항
파이썬 2.7 버전까지는 a.keys() 함수를 호출할 때 반환 값으로 dict_keys가 아닌 리스트를 돌려준다.
파이썬 3.0 이후 버전에서는 리스트에 소모되는 메모리 낭비를 줄이기 위해 위 예제와 같은 dict_keys 객체를 돌려준다.
만약 3.0 이후 버전에서 반환 값으로 리스트가 필요한 경우에는 위 예제처럼 list(a.keys())를 사용하면 된다.
dict_values, dict_items 역시 파이썬 3.0 이후 버전에서 추가된 것들이다.
2.
Value만 얻고 싶다! 할 때 사용
3.
쌍으로 얻고 싶다! 할 때 사용
4. Key: Value 쌍 모두 지우기(clear)
>>> a = {'name': 'jin', 'age': '30', 'birth': '0318'}
>>> a.clear()
>>> a
{}
5. Key로 Value얻기(get)
>>> a.get('name')
'jin'
>>> a.get('age')
'30'
>>> print(a.get('money'))
None
>>> print(a['money'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'money'
>>> a.get('foo', 'bar')
'bar'
6. 해당 Key가 딕셔너리 안에 있는지 조사하기(in)
>>> 'name' in a
True
>>> 'money' in a
False
4.
예제 참고
5.
a.get('name')은 a['name']을 사용했을 때와 동일.
존재하지 않는 키(nokey)로 값을 가져오려고 할 경우,
a.get('money')는 None을 돌려준다.
a['money']는 Key 오류를 발생시킨다는 차이가 있다.
6.
예제 참고
'파이썬(Python) > 파이썬(Python) 기초' 카테고리의 다른 글
파이썬(Python) 2장 자료형 - 7. 불 자료형 (0) | 2022.07.01 |
---|---|
파이썬(Python) 2장 자료형 - 6. 집합 자료형 (0) | 2022.07.01 |
파이썬(Python) 2장 자료형 - 4. 튜플 자료형 (0) | 2022.07.01 |
파이썬(Python) 2장 자료형 - 3. 리스트 자료형 (0) | 2022.06.30 |
파이썬(Python) 2장 자료형 - 2. 문자열 자료형 (0) | 2022.06.28 |
댓글