파이썬 딕셔너리 의미
딕셔너리의 사전적 의미는 사전이라는 뜻입니다.
이름 = 스마트, 나이 = 20살. 이런식으로 대응 관계를 나타내는 자료형이라고 보시면 됩니다.
이를 연관 배열(Associative array) 또는 해시(Hash)라고도 합니다.
파이썬 딕셔너리는 리스트나 튜플처럼 순차적으로 해당 요소의 값을 구하는게 아니라
key를 통해 Value 값을 얻습니다.
city 라는 단어의 뜻을 찾기 위해 전체 내용을 처음부터 끝까지 찾아보는 것이 아니라 city라는 단어가 있는곳을 바로 찾아가는것입니다.
딕셔너리 만들기
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
딕셔너리의 각각의 요소는 Key:Value 의 형태로 이루어져 있고, 쉼표로 구분됩니다.
>>> dic = {'name':'pey', 'phone':'010-1234-9999', 'birth':'0402'}
위의 예에서 key는 각각 ‘name’, ‘phone’, ‘birth’ 가 되며, 각각의 key 에 해당하는 Value는 ‘pey’, ‘010-1234-9999’, ‘0402’ 가 됩니다.
>>> a = {1: 'hello'}
>>> b = {'a': [1, 2, 3]}
위처럼 key로 정수값 1, Value 로 문자열 ‘hello’를 입력받았습니다.
b처럼 key ‘a’ 에 리스트 [1, 2, 3] 을 넣을수도 있습니다.
딕셔너리 쌍 추가, 삭제
딕셔너리 쌍 추가
>>> a = {1: 'p'}
>>> a[3] = 'y'
>>> a
{1: 'p', 3: 'y'}
key 1 에 value ‘p’ 인 딕셔너리 a 에 key 3 인 value ‘y’가 추가 되었습니다.
>>> a['name'] = 'py'
>>> a
{1: 'p', 3: 'y', 'name': 'py'}
딕셔너리 a에 {‘name’:’py’} 쌍이 추가 되었습니다.
>>> a[5] = [2, 4, 6]
>>> a
{1: 'p', 3: 'y', 'name': 'py', 5: [2, 4, 6]}
key 5에 리스트 vlaue [2, 4, 6] 의 쌍이 또 추가 되었습니다.
딕셔너리 요소 삭제
>>> del a[1]
>>> a
{3: 'y', 'name': 'py', 5: [2, 4, 6]}
기존 딕셔너리 a 에서 key 1의 value ‘p’ 쌍이 삭제되었습니다.
딕셔너리를 삭제할때 del a[key]를 입력해주면 딕셔너리 a에서 key 에 해당하는 쌍이 삭제가 됩니다.
딕셔너리 사용법
예를 들어 사람이름과 특기를 한쌍으로 표현한다면 딕셔너리를 사용하는게 간편합니다
딕셔너리에서 key 사용해 value 값 얻기
>>> jumsoo = {'gpt': 20, 'romio': 90}
>>> jumsoo['gpt']
20
>>> jumsoo['romio']
90
기존 리스트나 튜플, 문자열에서는 요소의 값을 구하고자 할때 인덱싱이나 슬라이싱 방법을 사용합니다.
그에 비해 딕셔너리는 바로 key를 사용해 value 를 구합니다.
key ‘gpt’의 value 는 20, key ‘romio’의 value 는 90 을 반환합니다
위처럼 딕셔너리변수이름[key] 를 사용하면 key 의 value 값을 가져올 수 있습니다.
>>> a = {1:'p', 2:'y'}
>>> a[1]
'p'
>>> a[2]
'y'
딕셔너리 a 에는 {1:’p’, 2:’y’} 라는 key와 value 가 있습니다.
a[1]이라고 했을때 리스트나 튜플에서는 a의 1번째 리스트나 튜플에 있는 값을 가지고 오지만
딕셔너리에서는 a의 key 1 에 해당하는 value 를 가지고 옵니다
>>> a = {'p':1, 'y':2}
>>> a['p']
1
>>> a['y']
2
딕셔너리 a 에 key ‘p’, ‘y’와 이에 대응하는 value 1, 2를 넣어봤습니다.
key ‘p’, ‘y’를 이용해 해당하는 value값은 1과 2를 반환합니다.
딕셔너리 만들때 주의할 점
딕셔너리에서 key는 고유한 값입니다. key값이 중복된다면 하나를 제외한 나머지는 모두 무시됩니다
>>> a = {1:'p', 1:'y'}
>>> a
{1: 'y'}
위의 예처럼 key 값이 중복될 경우 딕셔너리에서는 어떤 값을 가지고 올지 알 수가 없어집니다.
그리고 key값에 리스트 자료형은 사용할수가 없습니다. 이유는 리스트는 변할수 있기때문입니다.
반면 튜플은 변하지 않는 속성을 가지고 있어 딕셔너리의 key로 사용할수가 있습니다.
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.