관리 메뉴

4. 파이썬(Python) 딕셔너리(Dictionary) 본문

Python/Python 기본 개념

4. 파이썬(Python) 딕셔너리(Dictionary)

ª_ª 2017. 8. 7. 10:04
728x90
반응형


딕셔너리(dictionary)이란?

딕셔너리(dictionary)는 한글로 표현하면 사전입니다. 한글,영어 사전들은 가나다순 알파벳순으로 정렬 하게 됩니다. 이러한 정렬 덕분에 찾고 싶은 단어를 쉽고 빠르게 찾을 수 있습니다. 파이썬의 딕셔너리도 사전과 유사하게 key()value()것을 한 쌍으로 데이터를 저장해서 찾고 싶은 부분을 쉽고 빠르게 찾을 수 있는 구조입니다.

 

리스트, 튜플, 딕셔너리 차이점

- 리스트는 선언을 할 때 대괄호([])’를 사용

- 튜플은 소괄호(())’를 사용

- 딕셔너리는 중괄호({})’를 사용

  

1. 딕셔너리 문법


딕셔너리 명 = {key1:value1, key2:value2, key3:value3 ...} 


key는 변하지 않는 값(고유값)을 사용하고, value는 변하지 않는 값과 변하는 값을 모두 사용할 수 있습니다.

 

1_1. 딕셔너리 기본형

>>> dic = {'book':10000, 'pen':1000, 'case':5000}

>>> dic

{'book': 10000, 'pen': 1000, 'case': 5000}

 

key(‘book’, ‘pen’, ‘case’)이고, value(‘10000’, ‘1000’, ‘5000’)입니다.

key

value

book

10000

pen

1000

case

5000


1_2. 딕셔너리 value에 문자열 넣기

>>> dic1 = {1:'hello'}

>>> dic1

{1: 'hello'}

 

key는 정수값 value는 문자열을 사용할 수 있습니다.

 

1_3. 딕셔너리 value에 리스트 넣기

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

>>> dic2

{1: ['a', 'b', 'c']}

 

value에 리스트를 사용할 수 있습니다.

 

1_4. 딕셔너리 value에 튜플 넣기

>>> dic3 = {1:(1,2,3)}

>>> dic3

{1: (1, 2, 3)}

 

value에 튜플을 사용할 수 있습니다.

 

2. 딕셔너리 추가하는 방법 


2_1. value에 문자열 넣기

>>> dic ={}

>>> dic[0] = 'book' # {0:‘book’} 추가

>>> dic

{0: 'book'}

>>> dic[1] = 'book1' # {1:‘book1’} 추가

>>> dic

{0: 'book', 1: 'book1'}

>>> dic[3] = 'book3' # {3:‘book3’} 추가

>>> dic

{0: 'book', 1: 'book1', 3: 'book3'}

 

딕셔너리[key] = ‘vaule’라고 생가하면 됩니다.

 

2_2. key에 문자열 넣기

>>> dic['book'] = 10000

>>> dic

{0: 'book', 1: 'book1', 3: 'book3', 'book': 10000}

 

3. 딕셔너리 삭제하는 방법 


3_1. 삭제하는 방법 (del)

>>> dic

{0: 'book', 1: 'book1', 3: 'book3', 'book': 10000}

>>> del dic[0]

>>> dic

{1: 'book1', 3: 'book3', 'book': 10000}

 

방금 사용했던 예제에서 del함수를 사용해서 del dic[key]로 삭제를 했습니다. keyvalue는 연결 되어있어서 key만 삭제해도 value는 같이 삭제됩니다.


3_2. del함수를 사용하지 않고 삭제

>>> dic

{1: 'book1', 3: 'book3', 'book': 10000}

>>> dic[1] = {}

>>> dic

{1: {}, 3: 'book3', 'book': 10000}

>>> dic[1] = []

>>> dic

{1: [], 3: 'book3', 'book': 10000}

>>> dic[1] = ()

>>> dic

{1: (), 3: 'book3', 'book': 10000}

>>> dic[1] =''

>>> dic

{1: '', 3: 'book3', 'book': 10000}

>>> del dic[1]

>>> dic

{3: 'book3', 'book': 10000}

 

del함수 외에는 삭제할 수가 없습니다.

 

딕셔너리는 어디에 사용 할까요?

무언가를 설명하고 싶을 때 물건의 가격을 쓰고 싶을 때 등 여러 방면에서 사용할 수 있습니다. 이러한 방법은 리스트나 튜플로는 표현하기가 힘듭니다.

 

4. 딕셔너리 활용 


4_1. key값을 이용해 value값 얻기

>>> dic = {'파이썬':'네덜란드 개발자 귀도 반 로섬이 만든 언어이다.', 'c언어':'미국 벨 연구소에서 만든 언어이다.' ,'java':'썬 마이크로시스템즈의 연구원들이 만든 언어이다.'}

>>> dic

{'파이썬': '네덜란드 개발자 귀도 반 로섬이 만든 언어이다.', 'c언어': '미국 벨 연구소에서 만든 언어이다.', 'java': '썬 마이크로시스템즈의 연구원들이 만든 언어이다.'}

>>> dic['파이썬']

'네덜란드 개발자 귀도 반 로섬이 만든 언어이다.'

>>> dic['c언어']

'미국 벨 연구소에서 만든 언어이다.'

>>> dic['java']

'썬 마이크로시스템즈의 연구원들이 만든 언어이다.'

 

5. 딕셔너리 주의 사항

앞에서 설명했는데 key는 고유 값으로 선언하고 value는 변하는 값, 변하지 않는 값으로 해야 된다고 했습니다. 만약 key값을 고유 값이 아니게 된다면 어떤 결과를 가져 올까요?

 

5_1. key값의 중복

>>> dic = {'a' : 1 , 'a' : 2, 'a' : 3}

>>> dic

{'a': 3}

 

key가 중복되었을 때 1개를 제외하고 나머지는 다 무시가 됩니다. 이유는 key를 통해서 value를 찾아야 하는데 중복이 되면 어떤 것을 찾아야 되는지 오류가 발생하기 때문입니다.

 

5_2. 리스트를 key로 사용 튜플을 key로 사용

리스트를 key로 사용

튜플을 key로 사용

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

Traceback (most recent call last):

File "<pyshell#4>", line 1, in <module>

dic1 = {[1,2] : 'a'}

TypeError: unhashable type: 'list'

>>> dic2 = {(1,2), 'a'}

>>> dic2

{(1, 2), 'a'}


리스트를 key로 사용할 경우 에러가 발생합니다. 하지만 튜플을 key로 사용할 경우 오류가 발생하지 않고 잘 적용됩니다. 이유는 key값은 고유 값(변하지 않는 값)이어야 합니다. 리스트는 값을 변경시킬 수 있습니다. 하지만 튜플은 값을 변경할 수 없습니다. , 리스트는 값을 변경할 수 있기 때문에 key로 사용을 못하고 튜플은 값을 변경할 수 없기 때문에 key로 사용할 수 있습니다.

 

6. 딕셔너리 관련 함수

 

6_1. key 리스트 생성 (keys)

>>> dic = {'book':10000, 'book1':20000, 'book3':30000}

>>> dic

{'book': 10000, 'book1': 20000, 'book3': 30000}

>>> dic.keys()

dict_keys(['book', 'book1', 'book3'])

>>> dic_keys = dic.keys()

>>> dic_keys

dict_keys(['book', 'book1', 'book3'])

 

dic.keys()는 딕셔너리 dickey만 모두 모아서 보여줍니다. 변수를 만들어서 keys() 값을 넣어서 보관할 수 있습니다.

 

6_2. value로 리스트 만들기 (values)

>>> dic

{'book': 10000, 'book1': 20000, 'book3': 30000}

>>> dic.values()

dict_values([10000, 20000, 30000])

>>> dic_values = dic.values()

>>> dic_values

dict_values([10000, 20000, 30000])

 

keys()와 같이 values()를 사용해서 value의 값을 모두 보여줍니다.

 

6_3. 딕셔너리 안에 key가 존재하는지 조사하기 (in)

>>> dic

{'book': 10000, 'book1': 20000, 'book3': 30000}

>>> 'book1' in dic

True

>>> 'book4' in dic

False

 

True는 존재(O) False는 존재(X) 입니다.


함수

설명

keys()

딕셔너리 안에 있는 key값을 모두 표시

values()

딕셔너리 안에 있는 value값을 모두 표시

in

딕셔너리 안에 key가 존재하는지 판단


리스트, 튜플, 딕셔너리 연습문제 풀러가기



728x90
반응형
Comments