관리 메뉴

정리왕

파이썬 딕셔너리 2 본문

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

파이썬 딕셔너리 2

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

딕셔너리를 사용하는 방법

 

딕셔너리는 주로 어떤 것을 표현하는데 사용할까? 라는 의문이 들 것이다.

예를 들어 4명의 사람이 있다고 가정하고, 각자의 특기를 표현할 수 있는 좋은 방법에 대해서 생각해 보자.

리스트나 문자열로는 표현하기가 상당히 까다로울 것이다.

하지만 파이썬의 딕셔너리를 사용한다면 이 상황을 표현하기가 정말 쉽다.

다음 예를 보자.

 

 >>> {"김연아":"피겨스케이팅", "류현진":"야구", "박지성":"축구"}
 

사람 이름과 집업을 한 쌍으로 하는 딕셔너리이다. 정말 간편하지 않는가?

 

지금껏 우리는 딕셔너리를 만드는 방법에 대해서만 살펴보았는데,

딕셔너리를 제대로 활용하기 위해서는 알아야 할 것이 있다.

이제부터 알아보자!!

 

 

 

 

딕셔너리에서 Key 사용해서 Value값 알아내기

다음 예를 살펴보자.

 

-> Key가 'abc'인 딕셔너리의 Value를 반환

-> Key가 'def'인 딕셔너리의 Value를 반환

 
>>> grade = {'abc' : 10, 'def':99}
		   
>>> grade['abc']
		   
10
>>> grade['def']
		   
99
 

리스트나 튜플, 문자열은 요소값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했다.

하지만 딕셔너리는 단 한가지 방법 뿐이다.

바로 Key를 사용해서 Value를 구하는 방법이다.

위 예에서 'pey'라는 Key의 Value를 얻기 위해 grade['pey']를 사용한 것처럼 어떤 Key의 Value를 얻기 위해서는 '딕셔너리 변수 이름[Key]'를 사용한다.

 

몇 가지 예를 더보자.

 

-> Key가 1인 요소의 Value를 반환

-> Key가 2인 요소의 Value를 반환

 
>>> a = {1:'a', 2:'b'}
		   
>>> a[1]
		   
'a'
>>> a[2]
		   
'b'
 

먼저 a 변수에 {1:'a', 2:'b'} 딕셔너리를 대입하였다.

위 예에서 볼 수 있듯이 a[1]은 'a'의 값을 돌려준다.

여기에서 a[1]이 의미하는 것은 리스트나 튜플의 a[1]과는 전혀 다르다.

딕셔너리 변수에서 [ ] 안의 숫자 1은 두 번째 요소를 뜻하는 것이 아니라 Key에 해당하는 1을 나타낸다.

앞에서도 말했듯이 딕셔너리는 리스트나 튜플에 있는 인덱싱 방법을 적용할 수 없다.

따라서 a[1]은 딕셔너리 {1:'a', 2:'b'} 에서 Key가 1인 것의 Value인 'a'를 돌려주게 된다.

a[2] 역시 마찬가지이다.

 

 

이번에는 a라인 변수에 앞의 예에서 사용된 딕셔너리의 Key와 Value를 뒤집어 놓은 딕셔너리를 대입해 보자.

 

 
>>> a = {'a':1, 'b':2}

>>> a['a']

1

>>> a['b']   

2
 

역시 a['a'], a['b']처럼 Key를 사용해서 Value를 얻을 수 있다.

정리하면, 딕셔너리 a는 a[Key]로 입력해서 Key에 해당하는 Value를 얻는다.

 

다음 예는 이전에 한 번 언급한 딕셔너리인데 Key를 사용해서 Value를 얻는 방법을 잘 보여준다.

 
>>> dic = {'name':'aaa', 'phone':'0000', 'birth':'1111'}
	   
>>> dic['name']
	   
'aaa'

>>> dic['phone']
	   
'0000'

>>> dic['birth']
	   
'1111'
 

 

 

딕셔너리 만들 때 주의할 사항

먼지 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 점을 주의해야 한다.

다음 예에서 볼 수 있듯이 동일한 Key가 2개 존재할 경우 1 : 'a' 쌍이 무시된다.

 

 
>>> a = {1:'a', 1:'b'}
	   
>>> a
	   
{1: 'b'}
 

1이라는 Key값이 중복으로 사용한다.

그래서 첫번째 1 : 'a' 쌍이 무시된다.

 

이렇게 Key가 중복되었을 때 1개를 제외한 나머지 Key:Value 값이 모두 무시되는 이유는 Key를 통해서 Value를 얻는 딕셔너리의 특징에서 비롯된다. 즉 동일한 Key가 존재하면 어떤 Key에 해당하는 Value를 불러야 할지 알 수 없기 때문이다.

 

또 한 가지 주의해야 할 사항은 Key에 리스트는 쓸 수 없다는 것이다.

하지만 튜플은 Key로 쓸 수 있다.

딕셔너리의 Key로 쓸 수 있느냐 없는냐는 Key가 변하는 값인지 변하지 않는 값인지에 달려 있다.

리스트는 그 값이 변할 수 있기 때문에 Key로 쓸 수 없다.

다음 예처럼 리스트를 Key로 설정하면 리스트를 키 값으로 사용할 수 없다는 오류가 발생한다.

 

-> 리스트를 Key로 사용할 경우

따라서 딕셔너리의 Key 값으로 딕셔너리를 사용할 수 없음은 당연하다.

단, Value에는 변하는 값이든 변하지 않는 값이든 상관없이 아무 값이나 넣을 수 있다.

 

 

반응형

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

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