[Python] 딕셔너리

참조


소개

  • 파이썬을 공부해야 할 일이 생겨서, 위키독스에 올라와 있는 점프 투 파이썬 내용을 보면서 파이썬 공부한 내용을 기록합니다.
  • 보다 자세한 내용은 점프 투 파이썬 해당 사이트에 가셔서 더 깊게 확인하실 수 있습니다.

딕셔너리 만드는 방법

  • 다음은 기본 딕셔너리의 모습입니다.
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
  • key와 Value의 쌍 여러개가 {} 로 둘러싸여 있습니다.
  • 각각의 요소는 Key:Value 형태로 이루어져 있고 쉼표(,) 로 구분되어 있습니다.
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
  • 위에서 Key는 각각 'name', 'phone', 'birth'이고, 각각의 Key에 해당하는 Value는 'pey', '0119993323', '1118'이 됩니다.

딕셔너리 사용하는 방법

  • "딕셔너리는 주로 어떤 것을 표현하는 데 사용할까?" 라는 의문이 들 수 있습니다.
  • 예를 들어 4명의 사람이 있다고 가정하고, 각자의 특기를 표현할 수 있는 좋은 방법에 대해서 생각합니다.
  • 리스트나 문자열로는 표현하기가 상당히 까다롭지만, 딕셔너리를 사용하면 표현하기가 쉽습니다.
{"김연아":"피겨스케이팅", "류현진":"야구", "박지성":"축구", "귀도":"파이썬"}
  • 위와 같이 사람의 이름과 특기를 한쌍으로 묶어서 간단히 표현할 수 있습니다.

딕셔너리에 Key 사용해 Value 얻기

>>> grade = {'pey': 10, 'julliet': 99}
>>> grade['pey']
10
>>> grade['julliet']
99
  • 리스트나 튜플, 문자열은 요솟값을 얻고자 할 때 인덱싱이나 슬라이싱 기법 중 하나를 사용했습니다.
  • 하지만, 딕셔너리는 단 한가지 방법 뿐입니다.
  • 바로 Key를 사용해서 Value를 구하는 방법입니다.

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

  • 먼저 딕셔너리에서 Key는 고유한 값이므로 중복되는 key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다는 점을 주의해야 합니다.
  • 다음 예에서 볼 수 있듯이 동일한 Key가 2개 존재할 경우 1:'a' 쌍이 무시됩니다.
>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}
  • 이렇게 Key가 중복되었을 때 1개를 제외한 나머지 Key:Value 값이 모두 무시되는 이유는 Key를 통해서 Value를 얻는 딕셔너리의 특징에서 비롯됩니다.
  • 즉 동일한 Key가 존재하면 어떤 Key에 해당하는 Value를 불러야 할 지 알 수 없기 때문입니다.

딕셔너리 관련 함수들

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

Key 리스트 만들기(keys)

  • dict_keys 객체는 다음과 같이 사용할 수 있습니다.
  • 리스트를 사용하는 것과 차이가 없지만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없습니다.
>>> for k in a.keys():
...    print(k)
...
name
phone
birth
  • dict_keys 객체를 리스트로 변환하려면 다음과 같이 하면 됩니다.
>>> list(a.keys())
['name', 'phone', 'birth']

Value 리스트 만들기(values)

>>> a.values()
dict_values(['pey', '0119993323', '1118'])
  • Key를 얻는 것과 마찬가지 방법으로 Value 만 얻고 싶다면 values 함수를 사용하면 됩니다.
  • values 함수를 호출하면 dict_values 객체를 돌려줍니다.

Key, Value 쌍 얻기(items)

>>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
  • items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려줍니다.
  • dict_values 객체와 dict_items 객체 역시 dict_keys 객체와 마찬가지로 리스트를 사용하는 것과 동일하게 사용할 수 있습니다.

Key로 Value 얻기

>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'0119993323'
  • get(x) 함수는 x라는 Key에 대응되는 Value를 돌려줍니다.
  • 앞에서 살펴보았듯이 a.get('name')은 a['name']을 사용했을 때와 동일한 결괏값을 돌려습니다.
  • 딕셔너리 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때는 get(x, '디폴트 값') 을 사용하면 편리합니다.
>>> a.get('foo', 'bar')
'bar'
  • a 딕셔너리에는 'foo' 에 해당하는 값이 없기 떄문에 디폴트 값인 'bar'를 돌려 받습니다.

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

>>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
  • 'name' 문자열은 a 딕셔너리의 Key 중 하나입니다.
  • 따라서 'name' in a를 호출하면 참(True)을 돌려줍니다.
  • 반대로 'email'은 a 딕셔너리 안에 존재하지 않는 Key이므로 거짓(False)을 돌려줍니다.
728x90

'파이썬(Python)' 카테고리의 다른 글

[Python] boo(불) 자료형  (0) 2022.01.29
[Python] 집합(Set)  (0) 2022.01.29
[Python] 튜플 자료형  (0) 2022.01.29
[Python] 리스트  (0) 2022.01.28
[Python] 문자열 자료형  (0) 2022.01.27

이 글을 공유하기

댓글

Designed by JB FACTORY