인생은 여행 人生は旅
파이썬 - 딕셔너리자료형 2(keys,values,get,items,clear) 본문
딕셔너리 관련 함수
딕셔너리를 자유자재로 사용하기 위해 딕셔너리가 자체적으로 가지고 있는 관련 함수를 사용해 보자.
Key 리스트 만들기 - keys
Copy>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
a.keys()는 딕셔너리 a의 Key만을 모아 dict_keys 객체를 리턴한다.
dict_keys 객체는 다음과 같이 사용할 수 있다. 리스트를 사용하는 것과 별 차이는 없지만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.
>>> for k in a.keys():
... print(k)
...
name
phone
birth
- print(k)를 입력할 때 들여쓰기를 하지 않으면 오류가 발생하므로 주의하자.
- for 문 등 반복 구문에 대해서는 03장에서 자세히 살펴본다.
dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 된다.
>>> list(a.keys())
['name', 'phone', 'birth']
Value 리스트 만들기 - values
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
Key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 values 함수를 사용하면 된다. values 함수를 호출하면 dict_values 객체를 리턴한다.
Key, Value 쌍 얻기 - items
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴한다.
Key: Value 쌍 모두 지우기 - clear
>>> a.clear()
>>> a
{}
clear 함수는 딕셔너리 안의 모든 요소를 삭제한다.
빈 리스트를 [], 빈 튜플을 ()로 표현하는 것과 마찬가지로 빈 딕셔너리도 {}로 표현한다.
Key로 Value 얻기 - get
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
get(x) 함수는 x라는 Key에 대응되는 Value를 리턴한다. 앞에서 살펴보았듯이 a.get('name')은 a['name']을 사용했을 때와 동일한 결괏값을 리턴한다.
다만, 다음 예제에서 볼 수 있듯이 a['nokey']처럼 딕셔너리에 존재하지 않는 키로 값을 가져오려고 할 경우, a['nokey'] 방식은 오류를 발생시키고 a.get('nokey') 방식은 None을 리턴한다는 차이가 있다. 어떤 것을 사용할 것인지는 여러분의 선택에 달려 있다.
여기에서 None은 ‘거짓’이라는 뜻이라고만 알아 두자.
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey’])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nokey'
딕셔너리 안에 찾으려는 Key가 없을 경우, 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, '디폴트 값')을 사용하면 편리하다.
>>> a.get('nokey', 'foo')
'foo'
딕셔너리 a에는 'nokey'에 해당하는 Key가 없다. 따라서 디폴트 값인 'foo'를 리턴한다.
해당 Key가 딕셔너리 안에 있는지 조사하기 - in
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
'name' 문자열은 a 딕셔너리의 Key 중 하나이다. 따라서 'name' in a를 호출하면 참(True)을 리턴한다. 이와 반대로 'email'은 a 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 리턴한다.
리스트와 비슷한 딕셔너리...
알듯말듯 ㅎㅎ
'코딩 공부' 카테고리의 다른 글
파이썬 - 불자료형 (1) | 2024.03.07 |
---|---|
파이썬 - 집합 자료형 (2) | 2024.03.06 |
파이썬 - 딕셔너리 자료형 1(쌍추가,요소삭제,주의사항) (0) | 2024.03.04 |
파이썬 - 튜플 자료형 (0) | 2024.02.29 |
파이썬 - 리스트 자료형 3 (정렬,리버스,리무브,인서트) (0) | 2024.02.28 |