Python #7 l 파이썬의 자료형_딕셔너리 자료형

신승호·2021년 2월 25일
0

Python

목록 보기
8/35
post-custom-banner

List

  • 파이썬의 자료형
    • 숫자형
    • 문자열 자료형
    • 리스트 자료형
    • 튜플 자료형
    • 딕셔너리 자료형
    • 집합 자료형
    • 불 자료형
    • 자료형의 값을 저장하는 공간
    • 변수

파이썬의 자료형_딕셔너리 자료형


딕셔너리란?

  • 딕셔너리는 KeyValue를 한 쌍으로 갖는 자료형이다. 예컨대 Key가 "baseball"이라면 Value는 "야구"가 될 것이다.
  • 딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.

딕셔너리는 어떻게 만들까?

기본구조

  • {Key1:Value1, Key2:Value2, Key3:Value3, ...}
  • Key와 Value의 쌍 여러 개가 { }로 둘러싸여 있으며, 각각의 요소는 Key : Value 형태로 이루어져 있고 쉼표(,)로 구분한다.
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> a = {1:'hi'}
>>> a = { 'a':[1,2,3]} # 리스트를 넣을 수도 있음

딕셔너리 쌍 추가, 삭제하기(key 사용)

딕셔너리 쌍 추가하기

  • 변수이름[key] = value
>>> a = {1: 'a'}
위의 딕셔너리에 `key = 2` `value = b`를 추가해라
>>> a[2] = 'b'
>>> a

{1: 'a', 2: 'b'}
>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
>>> a[3] = [1,2,3] # 이런 value도 추가 가능하다
>>> a
{1: 'a', 2: 'b', 'name': 'pey', 3: [1, 2, 3]}

딕셔너리 요소 삭제하기

  • del 변수이름[key]
>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}

딕셔너리를 사용하는 방법

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

  • 리스트, 튜플, 문자열은 요소값을 얻기위해 인덱싱 또는 슬라이싱을 사용
  • 딕셔너리는 변수이름[key] 를 사용하면 된다
>>> dic = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>>> dic['name']
'pey'
>>> dic['phone']
'0119993323'
>>> dic['birth']
'1118'

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

  • key값이 중복되었을 때 마지막을 제외한 나머지것들은 무시된다.
>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}
  • key값으로 리스트는 불가, 튜플은 가능
>>> a = {[1,2] : 'hi'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

>>> a = {(1,2) : 'hi'}
>>> a
{(1, 2): 'hi'}

딕셔너리 관련 함수들

  • 기본구조 : 변수이름.함수()

-변수이름.key() : key로만 리스트를 만들고, dict_keys를 변수로 리스트 출력한다.

>> a = {'name': 'pey', 'phone': '0119993323', 'birth': '1118'}
>> a.keys()
dict_keys(['name', 'phone', 'birth'])
>> for k in a.keys():
...    print(k)
...
name
phone
birth
  • dict_keys 의 사용
  • 리스트를 사용하는 것과 차이가 없지만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.
>> list(a.keys())
['name', 'phone', 'birth']
  • 변수이름.values() : value로만 리스트 만들고, dict_value를 변수로 리스트 출력한다.
>> a.values()
dict_values(['pey', '0119993323', '1118'])
  • 변수이름.items() : Key, Value 같이 리스트 만들고, dict_items로 리스트 출력한다.
>> a.items()
dict_items([('name', 'pey'), ('phone', '0119993323'), ('birth', '1118')])
  • 변수이름.clear() : key, value를 전부 지운다.
>> a.clear()
>> a
{} # 리스트는 값이 없을 때'[]`, 튜플은 '()', 딕셔너리는 '{}'
  • 변수이름.get(key값) : x에 key값을 넣어서 value값 얻을 수 있다.
>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>> a.get('name')
'pey'
>> a.get('phone')
'0119993323'
  • *이때 변수이름[key값]사용과 변수이름.get(key값)의 차이점은 존재하지 않은 키값을 입력했을 때 나온다.
>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>> print(a.get('nokey')) 
None 				# 값이 None으로 나오며, 이 이 의미는 거짓이라는 의미
>> print(a['nokey'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'nokey' 		# 오류가 나온다
  • 변수이름.get(key값, default값) : 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때 사용한다.
>> a.get('foo', 'bar')
'bar'
  • key값 in 변수이름 :해당 key가 딕셔너리 안에 있는지 없는지 조사할 때 사용한다.
>> a = {'name':'pey', 'phone':'0119993323', 'birth': '1118'}
>> 'name' in a 					# str이기 떄문에 ' ' 사용	
True 						# 있으면 True 출력
>> 'email' in a
False 						# 없으면 False 출력
profile
신승홉니다
post-custom-banner

0개의 댓글