파이썬 기초 정리(자료형-딕셔너리)

딕셔너리

범용적으로 가장 많이 사용! ( JSON 과 비슷 )

딕셔너리 자료형은 순서X, 키 중복X, 수정O, 삭제O

선언

a = { 'name' : 'kim', 'phone' : '01029394123', 'birth' : '20199999' } # key 와 value로 이루어짐
b = { 0 : 'Hello Python' }
c = { 'arr' : [1,2,3,4]}
d = {
  'name' : 'kim',
  'city' : 'Seoul',
  'Age' : 33,
  'grade' : 'A',
  'status' : True
}

print(type(a)) # <class 'dict'>

자주 쓰이는 형태는 아니지만

e = dict([
  ('name' , 'kim'), # 튜플이니까 : 를 , 로 바꿔줘야함
  ('city' , 'Seoul'),
])

dict() 함수 안에 리스트를 넣고 그 안에 원소로 key와 value를 갖는 튜플을 넣어주면 딕셔너리 선언이 가능하다.

또 다른 방법으로는

f = dict([
  name = 'kim',
  city = 'Seoul',
  age = 33
])

위와 같은 방법이 있다. ( 이게 가장 편한듯 )

출력

a = { 'name' : 'kim', 'phone' : '01029394123', 'birth' : '20199999' }
b = { 0 : 'Hello Python' }
print(a['name']) # 'kim'
print(a.get('name')) # 'kim'
print(b[0]) # 'Hello Python'
print(b.get(0)) # 'Hello Python'

[key name] 을 이용하여 값을 가져오는 방법과 get(key name) 의 차이점은

print(a['namename']) # key error
print(a.get('namename')) # none

[ ] 는 없는 key 값에 접근시 error를 발생 시키지만 get() 함수는 none 을 리턴한다. ( get()을 사용하는게 좀 더 안전 하다. )

딕셔너리 추가

a = { 'name' : 'kim' }
a['address'] = 'seoul' 
print(a) # { 'name' : 'kim', 'address' : 'seoul'}
a['address'] = 'jeonju'
print(a) # { 'name' : 'kim', 'address' : 'jeonju' }

print(len(a)) # 2, 딕셔너리에서 len()는 key의 개수를 계산한다.

딕셔너리의 추가는 속성 값으로 접근하여 value를 지정해 주면 된다. 만약 기존에 있는 속성 값에 접근하면 그 속성의 값이 수정된다.

하지만 수정 할 때에는 update() 함수를 사용하자! ( 아래 참고 )

딕셔너리 함수

#dict_keys, dict_values, dict_items 는 반복문(__iter__) 사용 가능하다.
a = { 'name' : 'kim', 'address' : 'jeonju' }
print(a.keys()) # dict_keys(['name', 'address'])
print(list(a.keys())) # ['name', 'address']

print(a.values()) # dict_values(['kim','jeonju'])
print(list(a.values())) # ['kim','jeonju']

print(a.items()) # dict_items([('name','kim'), ('address','jeonju')])
print(list(a.items())) # [('name','kim'), ('address','jeonju')]

print(a.pop('name')) # 'kim'
print(a) # { 'address' : 'jeonju' } , pop은 원본을 수정한다.
b = { 0 : 1}
print(b.pop(0)) # 1
print(b) # {}

a = { 'name' : 'kim', 'address' : 'jeonju' } # 재선언
print(a.popitem()) # ('address','jeonju') , 무작위로 꺼내온다 ( 튜플 형태로 )

a = { 'name' : 'kim', 'address' : 'jeonju', 'birth' : '20191010' }
print('birth' in a) # True , a에 'birth'라는 key가 있는지 따짐

a.update(age='123') # 문법적으로 딕셔너리를 수정하는 함수
print(a) # { 'name' : 'kim', 'address' : 'jeonju', 'age' : '123' }
a.update(age='456')
print(a) # { 'name' : 'kim', 'address' : 'jeonju', 'age' : '456' }
  • dict.keys() : Key 값들을 반환하는 함수
  • dict.values() : Value 값들을 반환하는 함수
  • dict.items() : Key와 Value 모두를 튜플 형태로 반환하는 함수
  • dict.pop(key name) : 딕셔너리에서 key name에 해당하는 value를 리턴하고 원본 딕셔너리를 수정한다.
  • dict.popitem() : 딕셔너리에서 무작위( 딕셔너리는 순서가 없기 때문에) 로 key, value 한 쌍을 꺼내온다. 원본 배열을 수정하고 만약 꺼내올 아이템이 없다면 예외가 발생한다.
  • value in dict : 딕셔너리에 value라는 key가 있으면 True 없으면 False
  • dict.update(key=value) : 딕셔너리에 값을 추가( 만약 key가 없으면 추가 )하거나 해당 key값을 수정한다.

Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook