관리 메뉴

정리왕

파이썬 딕셔너리 3 (함수) 본문

6.개발/파이썬 공부하기

파이썬 딕셔너리 3 (함수)

정리합니다 2020. 11. 29. 12:14
반응형

딕셔너리 관련 함수

 

딕셔너리를 자유자재로 사용하기 위해 딕셔너리가 자체적으로 가지고 있는 관련 함수를 사용해보자.

 

 

Key 리스트 만들기 (Keys)

 
>>> a = {'name':'abc', 'phone':'000000', 'birth':'1111'}
	   
>>> a.key()

dict_keys(['name', 'phone', 'birth'])
 

a.key( )는 딕셔너리의 a의 Key만을 모아서 dict_keys 객체를 돌려준다.

 

 

 

 

파이썬 3.0 이후 버전의 keys 함수, 어떻게 달라졌나?

파이썬 2.7 버전까지는 a.keys( ) 함수를 호출할 때 반환 값으로 dict_keys가 아닌 리스트를 돌려준다.

리스트를 돌려주기 위해서는 메모리 낭비가 발생하는데 파이썬 3.0 이후 버전에서는 이러한 메모리 낭비를 줄이기 위해 dict_keys 객체를 돌려준다. 다음에 소개할 dict_values, dict_items 역시 파이썬 3.0 이후 버전에서 추가된 것들이다.

만약 3.0 이후 버전에서 반환 값으로 리스트가 필요할 경우에는'list(a.keys())'를 사용하면 된다.

dict_keys, dict_values, dict_items 등은 리스트로 변환하지 않더라도 기본적인 반복(iterate) 구문(예:for문)을 실행할 수 있다.

 

 

 

 

dict_keys 객체는 다음과 같이 사용할 수 있다.

리스트를 사용한 것과 차이가 없지만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.

 

print(K)를 입력할 때 들여쓰기를 하지 않으면 오류가 발생하니 주의하자.

 
>>> for k in a.keys():
	   print(k)

	   
name
phone
birth
 

dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 된다.

 
 >>> list(a.keys())
	   
['name', 'phone', 'birth']
 

 

 

 

 

Value 리스트 만들기 (values)

 

 
['name', 'phone', 'birth']
>>> a.values()
	   
dict_values(['abc', '000000', '1111'])
 

 

key를 얻는 것과 마찬가지 방법으로 Value만 얻고 싶다면 values 함수를 사용하면 된다.

values 함수를 호출하면 dict_values 객체를 돌려준다.

 

 

 

Key, Value 쌍 얻기 (items)

 
>>> a.items()
	   
dict_items([('name', 'abc'), ('phone', '000000'), ('birth', '1111')])
 

items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.

dict_values 객체와 dict_items 객체 역시 dict_keys 객체와 마찬가지로 리스트를 사용하는 것과 동일하게 사용할 수 있다.

 

 

 

Key: Value 쌍 모두 지우기 (clear)

 
>>> a.clear()
	   
>>> a
	   
{}
 

clear 함수는 딕셔너리 안의 모든 요소를 삭제한다.

빈리스트를[ ], 빈 튜플을 ( ) 로 표현하는 것과 마찬가지로 빈딕셔너리도 { }로 표현된다.

비어있는 딕셔너리는 a = dict( )로 생성할 수 있다.

 

 

 

 

Key로 Value 얻기 (get)

 
>>> a = {'name':'abc', 'phone':'000000', 'birth':'1111'}
	   
>>> a.get('name')
	   
'abc'
>>> a.get('phone')
	   
'000000'
 

get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다.

앞에서 살펴보았듯이 a.get('name')은 a['name']을 사용했을 때와 동일한 결과값을 돌려 받는다.

 

 

다만 다음 예제에서 볼 수 있듯이 a['address']처럼 존재하지 않는 키(address)로 값을 가져오려고 할 경우,

a['address']는 Key 오류를 발생시키고, a.get('address')는 None을 돌려준다는 차이가 있다.

어떤 것을 사용할지는 여러분의 선택이다.

여기에서 None은 '거짓'이라는 뜻이라고만 알아두자.

 

 

 

딕셔너리 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 편리하다.

 

 

 

해당 Key가 딕셔너리 안에 있는지 조사하기 (in)

>>> a = {'name':'abc', 'phone':'000000', 'birth':'1111'}
	   
>>> 'name' in a
	   
True
>>> 'address' in a
	   
False

'name' 문자열은 a 딕셔너리의 Key 중 하나이다.

따라서 'name' in a를 호출하면 참(True)을 돌려준다.

반대로 'email'은 a 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 돌려준다.

 

 

 

숙제. 다음 표를 딕셔너리로 만드시오.

항목
name kkk
birth 1212
age 17

 

dic = {'name':'kkk', 'birth':1212, 'age':17}

 

 

반응형

'6.개발 > 파이썬 공부하기' 카테고리의 다른 글

파이썬 불 자료형 1  (0) 2020.11.29
파이썬 집합자료형 1  (0) 2020.11.29
파이썬 딕셔너리 2  (0) 2020.11.29
파이썬 딕셔너리 1  (0) 2020.11.29
파이썬 튜플2 (튜플 활용방법)  (0) 2020.11.29
Comments