디지털 너구리 : 게임, IT 정보 및 다양한 지식 공유드립니다.

안녕하세요 엘빈입니다. 저번 포스팅에서는 리스트, 튜플 자료형에 대해서 알아보았는데요.  지금까지 여러 개의 원자값을 가진 변수들은 모두 인덱스 값으로 정수를 가지고 있었습니다.  꼭 인덱스 값이 숫자일 필요가 있을까요? '서울' = '대한민국' 식으로 누구나 쉽게 알아볼 수 있도록 대응관계를 만들수 있지 않을까요?

 

 

 

 

 

  딕셔너리란?

 

연관된 문자들로 대응 관계를 만들 수 있게 파이썬에서는 딕셔너리 자료형을 제공하고 있습니다. 딕셔너리 자료형이란 key와 value를 한쌍으로 대응 관계를 나타내는 변수입니다. 리스트,튜플과 같이 여러 개의 원자 값을 가질 수 있으며 key, value 쌍으로 중괄호 "{ }"에 둘러싸여 있습니다.

 

다음과 같이 코드를 작성해봅시다

 

dic = {'seoul':'korea','new york':'usa'}

print(dic) # {'new york': 'usa', 'seoul': 'korea'}

 

'Seoul' 이라는 key 값은 value 'korea'와 대응 관계이며 'new york'이라는 key 값은 value 'usa'와 대응 관계입니다.  Dic 변수는 원자값 두개의 쌍을 가지고 있습니다. Key : Value 형태로 구성되어 있다고 생각하시면 됩니다.

 

Value 값에는 자료형에 제약 받지 않습니다.  다음과 같은 형태도 가능합니다.

 

 

dic2 = {'num',[1,2,3,4]}

 

Num이라는 키 값이 [1,2,3,4]라는 리스트 자료형 변수와 대응관계임을 알 수 있습니다.

 

 

 

 

 

 딕셔너리 사용하기

 

(1) 딕셔너리 원자쌍 추가하기

 

dic = {'seoul':'korea','new york':'usa'}
dic['tokyo'] = 'japan'

print(dic) # {'new york': 'usa', 'seoul': 'korea', 'tokyo': 'japan'}

 

위의 코드와 선언한 딕셔너리 자료형 변수에 새로운 원자쌍을 추가하려면 dic['tokyo'] = 'japan' 대입 형태로 작성해주시면 됩니다.

 

 

 

(2) 딕셔너리 삭제하기

 

dic = {'seoul':'korea','new york':'usa'}
del dic['seoul']

print(dic) # {'new york': 'usa'}

 

딕셔너리 요소를 지울 때는 del 함수를 이용합니다.  인덱스 값 위치에 key 값을 넣어준다면 해당 원자쌍이 모두 삭제됩니다.

 

 

 

(3) 딕셔너리 value 값 얻기

 

dic = {'seoul':'korea','new york':'usa'}

print(dic['seoul']) # korea

 

Value 값을 얻으려면 변수명에 인덱스 값으로 key 값을 넣어줍니다.

 

 

dic = {'seoul':'korea','seoul':'big city'}

print(dic['seoul']) # big city

 

주의해야할 점은 key 값이 같을 경우 다른 value 값이 무시될 수 있다는 것이다. 따라서 딕셔너리 자료형 변수의 키 값은 모두 달라야 한다.

 

 

 

 

 딕셔너리 관련 함수

 

(1) key 리스트 생성 - keys()

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }

print(dic.keys()) # ['new york', 'seoul', 'tokyo']

 

딕셔너리 자료형은 key와 value값이 합쳐서 한 쌍을 이루는데요. Key 값만 뽑고 싶을 경우 keys() 함수를 사용합니다.  위의 코드와 같이 key 값들만 리스트 형태로 표시된 것을 알 수 있습니다.

 

 

 

(2) value 리스트 생성 - values

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }

print(dic.values()) # ['usa', 'korea', 'japan']

 

Key 리스트와 마찬가지로 value 값만 뽑고 싶을 경우 values()함수를 사용합니다. 원자쌍 중 values 값만 표시되는 것을 알 수 있습니다.

 

 

 

(3) key,value 쌍 얻기 - items()

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }

print(dic.items()) # [('new york', 'usa'), ('seoul', 'korea'), ('tokyo', 'japan')]

 

Key, value 쌍 모두 리스트 형태로 얻고 싶다면 items() 함수를 사용합니다.

 

 

 

 

(4) key,value 쌍 모두 지우기 - clear()

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }
dic.clear()

print(dic) # {}

딕셔너리 자료형에 존재하는 모든 쌍을 지울 때 clear() 함수를 사용합니다.

 

 

 

(5) key로 value값 얻기 - get()

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }

print(dic.get('seoul')) # korea

Value 값 얻기와 비슷하지만 get함수는 존재하지 않는 키로 value를 찾으려는 경우 none을 반환한다. 기존 value 얻는 방식은 오류를 발생시키는데에 차이가 있다.

 

 

 

(6) 해당 key가 딕셔너리 안에 있는지 검사 - in

 

dic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }

print('seoul' in dic) # Truedic = {'seoul':'korea','new york':'usa','tokyo' : 'japan' }print('seoul' in dic) # True

 

In() 함수는 딕셔너리 자료형 변수에 key 값이 있는지 검사할 수 있는 기능을 가지고 있습니다. 있을 경우 True를 없을 경우 False를 반환합니다.

 

 

 


마무리

지금까지 딕셔너리 자료형에 대해서 알아보았는데요. 자주 사용되는 자료형이니 꼭 숙지하시고 넘어가시기 바랍니다. 포스팅 읽어주셔서 감사합니다.

 

 

이전글

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band