파이썬

자료형에 따른 활용법(함수 등) - 딕셔너리

ksge7 2020. 7. 1. 03:58

1. 딕셔너리 만드는 법

딕셔너리의 경우 key와 value 값이 있어야 하므로 기본적으로 2개의 값이 필요하다. 중괄호 { }로 둘러쌓여 있으며 리스트, 튜플과 다르게 별도의 순서가 존재하지 않는다. 딕셔너리의 형태는 다음과 같다. 참고로 딕셔너리의 key값에 리스트는 올 수 없다. 왜냐하면 key값은 바뀌지 않아야 하기 때문. 그래서 튜플이나 문자, 숫자는 올 수 있어도 리스트는 올 수 없다.

 

ex) {Key1:Value1, Key2:Value2, Key3:Value3, ...}

 

 

2. 딕셔너리에서 key값을 이용해 value값 얻어내기 : x[ "y" ]

key와 value는 한쌍이므로 key값을 부르면 value값도 같이 따라온다.

* 다만 한개의 key값은 한 개의 value값만 가질 수 있으므로 딕셔너리 내에서 key값이 중복될 경우 그 중에 한 개의 key값만 유효하게 된다.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a["손흥민"]
'축구'

 

 

2. 딕셔너리 요소 추가하기 : x[ "y" ] = "z"

* a는 딕셔너리의 변수값, y는 key값, z는 value값이다.

>>> a = {"김연아" : "피겨", "류현진" : "야구"}
>>> a["손흥민"] = "축구"
>>> a
{'김연아': '피겨', '류현진': '야구', '손흥민': '축구'}

 

 

3. 딕셔너리 요소 여러개 한 꺼번에 추가하기 : x.update( {"y1 : z1" , "y1 : z1"} )

* update를 이용하면 딕셔너리 안에 여러 개의 요소를 한 꺼번에 넣을 수 있다.

* 변수.update( { "key1" : "value1" , "key2" : "value2"} )

>>> a = {"김연아" : "피겨" }
>>> a.update ({"류현진" : "야구", "손흥민" : "축구"})
>>> a
{'김연아': '피겨', '류현진': '야구', '손흥민': '축구'}

 

 

4. 딕셔너리 함수와 기능

(1) 딕셔너리에서 key값을 이용해 value값 얻어내기 : x.get( "y" )

get함수를 이용해 value값을 얻어내는 것은 기존의 key값을 이용한 방법과 결과값은 같다.

* 다만 존재하지 않는 key값을 사용할 경우 기존에는 오류 메시지가 뜨지만 get함수는 None값을 출력.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a.get("손흥민")
'축구'
>>> print(a.get("박지성"))
None

 

(2) 딕셔너리 내 원하는 key값이 없을 경우 원하는 디폴트 값을 불러오길 원하면 : x.get( y, z )

get함수를 이용할 때, key값이 존재하지 않을 경우 None이 아닌 디폴트 메시지를 출력하게 할 수 있다.

변수.get("key값", "디폴트 메시지")와 같은 형식으로 써주면 된다.

 

 

(3) 딕셔너리 key값 리스트로 돌려받기 : x.keys( )

keys 함수를 쓰면 딕셔너리 내의 key값만 따로 추출이 가능하다.

* 단, keys 함수를 쓸 경우 파이썬 2.7버전까진 key값을 리스트로 돌려줬다.

* 파이썬 3.0부터는 객체값으로 돌려주고 있으며 이를 리스트로 받고 싶다면 list(a.keys())를 써야한다.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a.keys()
dict_keys(['김연아', '류현진', '손흥민'])

 

(4) 딕셔너리 value값 리스트로 돌려받기 : x.values( )

key값을 구하는 것과 마찬가지로 해당 함수를 쓰면 value함수를 쓰면 value 값을 리스트 형태로 돌려준다. 

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a.values()
dict_values(['피겨', '야구', '축구'])

 

(5) 딕셔너리의 key값과 value값 쌍으로 돌려받기 : x.items( )

items 함수는 key값과 value값을 튜플로 묶어서 리스트 형태의 객체로 돌려준다.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a.items()
dict_items([('김연아', '피겨'), ('류현진', '야구'), ('손흥민', '축구')])

 

 

(6) 딕셔너리 요소 삭제하기 : del x[ "y" ]

* del 함수를 딕셔너리에서 사용해줄 경우 key값을 삭제하면 key값과 value값이 같이 한쌍으로 삭제된다.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> del a["손흥민"]
>>> a
{'김연아': '피겨', '류현진': '야구'}

 

(7) 딕셔너리의 key값, value값 삭제하기 : x.clear( )

* clear 함수를 사용하면 딕셔너리 내 모든 요소를 삭제하고 { }만 남도록 만든다.

>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a.clear()
>>> a
{}

 

 

(8) 딕셔너리 내에 key값 여부 조사 : "y" in x

* 딕셔너리 내에서 해당 key값의 유무를 판단하여 참/거짓으로 나타낸다.

>>> a = { "김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> a = {"김연아" : "피겨", "류현진" : "야구", "손흥민" : "축구"}
>>> "김연아" in a
True
>>> "박지성" in a
False