본문 바로가기

Python

[Python3] Dictionary 관련 정리

반응형

Dictionary 만들기

Dictionary 예시
a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}

 

Dictionary 추가 및 삭제하기
a = {1: 'a'}
a[2] = 'b'
print(a)

a['name'] = 'hochoon'
print(a)

a[3] = [1,2,3]
print(a)

del a[1]
print(a)

############ RESULT ##############
{1: 'a', 2: 'b'}
{1: 'a', 2: 'b', 'name' : 'hochoon'}
{1: 'a', 2: 'b', 'name' : 'hochoon', 3: [1, 2, 3]}
{2: 'b', 'name' : 'hochoon', 3: [1, 2, 3]} 

 

Dictionary를 만들 때 주의해야 할 사항

당연하게도 Key는 고유 값이므로 중복되는 Key 값을 설정하면 하나를 제외한 나머지 것들이 모두 무시된다. 특히 동일 Key값에 대하여 나중에(제일 최근에) 추가한 Value가 남게된다.

Key에 리스트는 사용이 불가능하지만 Tuple은 Key로 사용이 가능하다. 즉, Key로 사용이 가능한 것은 Immutable 한 특징을 가지고 있는 것들이다.

 

딕셔너리 관련 함수

Key 리스트 만들기 : keys()
a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}
b = list(a.keys())

print(a.keys())
print(b)

for k in a.keys():
    print(k)

############## RESULT ################
dict_keys(['name', 'phone', 'birth'])
['name', 'phone', 'birth']
name
phone
birth

 

Value 리스트 만들기 : values()
a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}
b = list(a.values())

print(a.values())
print(b)

for v in a.values():
    print(v)

############## RESULT ################
dict_values(['hochoon', '010-1111-2222', '1992-04-11'])
['hochoon', '010-1111-2222', '1992-04-11']
hochoon
010-1111-2222
1992-04-11

 

Key, Value 쌍 얻기 : items()
a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}
b = list(a.items())

print(a.items())
print(b)

for i in a.items():
    print(i)

############## RESULT ################
dict_items([('name', 'hochoon'), ('phone', '010-1111-2222'), ('birth', '1992-04-11')])
[('name', 'hochoon'), ('phone', '010-1111-2222'), ('birth', '1992-04-11')]
('name', 'hochoon')
('phone', '010-1111-2222')
('birth', '1992-04-11')

 

Key : Value 쌍 모두 지우기 : clear()

 

Key로 Value 얻는 메소드 : get()

대괄호 안에 키 값을 넣어 조회하였을 경우에 존재하지 않는 키라면 오류를 뱉어내는데, get이라는 메소드를 사용하면 None이라는 값을 뱉어낸다. 즉, 오류를 내냐 안내냐의 차이

a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}

print(a.get(3))
print(a[3])

############## RESULT ################
None
Traceback (most recent call last):
  File "/Users/sukholim/Desktop/AlgoPrac/AlgorithmPractice/algo.py", line 4, in <module>
    print(a[3])
KeyError: 3

 

해당 Key가 Dictionary 안에 있는지 확인 : in
a = {'name' : 'hochoon', 'phone' : '010-1111-2222', 'birth' : '1992-04-11'}

t = 'name' in a
f = 'email' in a

print(t)
print(f)

############## RESULT ################
True
False

 


반응형

'Python' 카테고리의 다른 글

[Python3] 집합 관련 정리  (0) 2020.03.12
[Python3] 제어문 관련 정리  (0) 2020.03.12
[Python3] List 관련 정리  (0) 2020.03.11
[Python3] 문자열 관련 정리  (0) 2020.03.10
[Python3] 기본 문법 정리2  (0) 2020.03.09