[Python 기초] 05. 자료형(딕셔너리)

김나연·2021년 7월 31일
0

Python

목록 보기
5/18
post-thumbnail

딕셔너리

딕셔너리의 가장 큰 특징은 리스트나 튜플처럼 순차적으로 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는 것이다.
예를 들어, baseball이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아닌 baseball 이라는 단어가 있는 곳만 펼쳐 보는 것이다.

딕셔너리 만들고 사용하기

{Key1:Value1, Key2:Value, Key3:Value3, ...}

다음은 기본 딕셔너리의 모습이다. Key와 Value의 쌍 여러 개가 { }로 둘러싸여 있다. 각각의 요소는 Key : Value형태로 이루어져 있고 쉼표(,)로 구분되어 있다.

딕셔너리의 예시를 보면,

dic = {'name':'python', 'phone':'01012345678', 'birth':'0731'}

위에서 Key는 각각 'name', 'phone', 'birth' 이고, Value는 'python', '01012345678', '0731' 이 된다.

a = {1:'hi'}
#Key로 정수 값1, Value로 문자열 'hi'를 사용한 예
a = {'a':[1, 2, 3]}
#또한, Value에 리스트도 넣을 수 있다.

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

>>> grade = {'py': 10, 'thon': 99}
>>> grade['py']
10
>>> grade['thon']
99

딕셔너리에서 요솟값을 얻는 방법은 한가지이다. Key값을 사용해서 Value를 구하는 방법이다.
위 예에서 'py'라는 Key의 Value를 얻기 위해 grade['py']를 사용하였다.
어떤 Key값의 Value를 얻기 위해서는 딕셔너리변수이름[key]를 사용한다.

딕셔너리 쌍 추가, 삭제하기

딕셔너리 쌍 추가하기

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

{1: 'a'} 딕셔너리에 a[2] = 'b'와 같이 입력하면 딕셔너리 a에 Key가 2이고 Value가 'b'인 2:'b'라는 딕셔너리 쌍이 추가된다.

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

Key에는 3, Value에는 [1, 2, 3]을 가지는 리스트를 추가하는 예를 보여준다.

딕셔너리 요소 삭제하기

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

위의 예제는 딕셔너리의 요소를 지우는 것는 보여준다. del함수를 사용해서 del a[Key]를 입력하면 Key에 해당하는 {key: value}쌍이 삭제된다.

딕셔너리 만들 때 주의사항

1. 딕셔너리의 Key는 고유한 값이므로 중복되는 Key값을 설정해 놓으면 하나를 제외하고 나머지는 무시된다.

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

동일한 Key가 2개이므로 1:'a' 쌍이 무시되었다.

동일한 Key가 존재하면 어떤 Key에 해당하는 Value를 불러야 할지 알 수 없기 때문에 나머지 것들이 무시된다.

2. Key에는 리스트를 쓸 수 없다.

>>> a = {[1, 2] : 'hi'}
Traceback (most recent call last):
	File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

딕셔너리의 Key로 쓸 수 있냐 없냐는 Key가 변하는 값인지 변하지 않는 값인지에 달려있다. 위의 예처럼 리스트를 Key로 설정하면 리스트를 키 값으로 사용할 수 없다는 오류가 발생한다.

딕셔너리 관련 함수

1. Key 리스트 만들기 (keys)

>>> a = {'name': 'python', 'phone': '01012345678', 'birth': '0731'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])

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

  • dict_keys 객체는 다음과 같이 사용할 수 있다.
>>> for k in a.keys():
...	print(k)
...
name
phone
birth
  • dict_keys 객체를 리스트로 변환하려면 다음과 같이 할 수 있다.
>>> list(a.keys())
['name', 'phone', 'birth']

2. Value 리스트 만들기(values)

>>> a.values()
dict_values(['python', '01012345678', '0731'])

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

3. Key, Value 쌍 얻기(items)

>>> a.items()
dict_items([('name', 'python'), ('phone', '01012345678'), ('birth', '0731')])

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

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

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

5. Key로 Value 얻기(get)

>>> a = {'name':'python', 'phone':'01012345678', 'birth':'0731'}
>>> a.get('name')
'python'
>>> a.get('phone')
'01012345678'

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

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

>>> a = {'name':'python', 'phone':'01012345678', 'birth':'0731'}
>>> 'name' in a
True
>>> 'email' in a
False
profile
결국 무엇이든 해내는 사람 '김나연'입니다. 😎

0개의 댓글