본문 바로가기
개발/Python

[파이썬, Python] 딕셔너리 관련 함수 총정리

by 꾀돌이 개발자 2022. 3. 17.
반응형

 

[ 파이썬 딕셔너리 관련 함수 정리 ]

 

 

* 코드는 기본적으로 <입력값 # 출력값> 으로 구성되어 있습니다.

 

* 아래 [더보기] 클릭 후 [Ctrl + F] 단축키를 활용하여 찾고 계신 함수 위치로 바로 가실 수 있습니다.

더보기

딕셔너리 인덱싱 & 슬라이싱 불가: get
딕셔너리 {Key: Value} 추가
딕셔너리 {Key: Value} 제거 : del, clear

딕셔너리 복사 : =, dict, copy
딕셔너리 내장 함수 : len
딕셔너리 내장 함수 : items, keys, values
딕셔너리 내장 함수 : in
딕셔너리 내장 함수 : max, min, sum

 

 

type(변수) : 딕셔너리(dictionary)

a, b = {}, dict()
print(type(a)) # <class 'dict'>
print(type(b)) # <class 'dict'>
c = {'one':1, 'two':2, 'three':3}
d = {'팀':'A', '성적':['승', '패', '승']}
e = {'one':1, 'and':{'two':2, 'three':3}}
print(type(c)) # <class 'dict'>
print(type(d)) # <class 'dict'>
print(type(e)) # <class 'dict'>
f = {'one':1, {'two':2, 'three':3}} # SyntaxError: invalid syntax

 

 

딕셔너리 인덱싱 & 슬라이싱 불가: get

  • 딕셔너리[key] : 딕셔너리는 인덱스 대신 key를 사용하여 value를 반환함
  • 딕셔너리.get(key) : 딕셔너리는 인덱스 대신 key를 사용하여 value를 반환함
a = {'one':1, 'two':(2,2), 'three':[3,3,3]}
print(a['one']) # 1
print(a['two']) # (2, 2)
print(a['three']) # [3, 3, 3]
print(a['eight']) # KeyError: 'eight'

a = {'num':1, 'num':2, 'num':3}
print(a['num']) # 3

a = {'one':1, 'two':(2,2), 'three':[3,3,3]}
print(a.get('one')) # 1
print(a.get('two')) # (2, 2)
print(a.get('three')) # [3, 3, 3]
print(a.get('eight')) # None
print(a.get('eight', 'aaa')) # aaa

 

 

딕셔너리 {Key: Value} 추가

  • 딕셔너리[key] = value : 딕셔너리에 {key : value} 를 추가함
a = {'one':1}
a['two'] = 2
print(a) # {'one': 1, 'two': 2}
a['three'] =  [3,3,3]
print(a) # {'one': 1, 'two': 2, 'three': [3, 3, 3]}

b = {'one':1}
b['two'] = {}
b['two']['val'] = 2
print(b) # {'one': 1, 'two': {'val': 2}}
b['three']['val'] # KeyError: 'three'

c = {'one':1}
c[(1,2)] = 3
print(c) # {'one': 1, (1, 2): 3}
c[[1,2]] = 3 # TypeError: unhashable type: 'list'

 

 

딕셔너리 {Key: Value} 제거 : del, clear

  • del 딕셔너리[key] : 딕셔너리 내 key와 key에 해당하는 value를 제거함
  • 딕셔너리.clear() : 딕셔너리 내 모든 key와 value를 제거함
a = {'one':1, 'two':2, 'three':[3,3,3]}
del a['three']
print(a) # {'one': 1, 'two': 2}
del a['two']
print(a) # {'one': 1}

a = {'one':1, 'two':2, 'three':[3,3,3]}
del a
print(a) # NameError: name 'a' is not defined

a = {'one':1, 'two':2, 'three':[3,3,3]}
a.clear()
print(a) # {}

 

 

딕셔너리 복사 : =, dict, copy

 

  • 딕셔너리2 = 딕셔너리1 : 딕셔너리1 값을 딕셔너리2 값에 저장함, 두 변수의 메모리 주소가 동일함
  • 딕셔너리2 = dict(딕셔너리1) : 딕셔너리1 값을 딕셔너리2 값에 저장함, 두 변수의 메모리 주소가 동일하지 않음
  • 딕셔너리2 = 딕셔너리1.copy() : 딕셔너리1 값을 딕셔너리2 값에 저장함, 두 변수의 메모리 주소가 동일하지 않음
a = {'one':1, 'two':2, 'three':3}
b = a
print(id(a), id(b)) # 2485421943760 2485421943760
print(b is a) # True
a['one'] = 8
print(a, b) # {'one': 8, 'two': 2, 'three': 3} {'one': 8, 'two': 2, 'three': 3}

a = {'one':1, 'two':2, 'three':3}
c = dict(a)
print(id(a), id(c)) # 2485419607456 2485421839344
print(c is a) # False
a['one'] = 8
print(a, c) # {'one': 8, 'two': 2, 'three': 3} {'one': 1, 'two': 2, 'three': 3}

a = {'one':1, 'two':2, 'three':3}
e = a.copy()
print(id(a), id(e)) # 2485421996648 2485419607456
print(e is a) # False
a['one'] = 8
print(a, e) # {'one': 8, 'two': 2, 'three': 3} {'one': 1, 'two': 2, 'three': 3}

 

 

 

딕셔너리 내장 함수 : len

  • len(딕셔너리) : 딕셔너리의 길이를 반환함
a = {'one':1, 'two':(2,2), 'three':[3,3,3]}
print(len(a)) # 3

 

 

딕셔너리 내장 함수 : items, keys, values

  • 딕셔너리.items() : 딕셔너리의 (key, value)를 반환함
  • 딕셔너리.keys() : 딕셔너리의 key를 반환함
  • 딕셔너리.values() : 딕셔너리의 value를 반환함
a = {'one':1, 'two':2, 'three':3}
print(a.items()) # dict_items([('one', 1), ('two', 2), ('three', 3)])
print(type(a.items())) # <class 'dict_items'>
print(list(a.items())) # [('one', 1), ('two', 2), ('three', 3)]
print(type(list(a.items()))) # <class 'list'>

a = {'one':1, 'two':2, 'three':3}
print(a.keys()) # dict_keys(['one', 'two', 'three'])
print(type(a.keys())) # <class 'dict_keys'>
print(list(a.keys())) # ['one', 'two', 'three']
print(type(list(a.keys()))) # <class 'list'>

a = {'one':1, 'two':2, 'three':3}
print(a.values()) # dict_values([1, 2, 3])
print(type(a.values())) # <class 'dict_values'>
print(list(a.values())) # [1, 2, 3]
print(type(list(a.values()))) # <class 'list'>

 

 

딕셔너리 내장 함수 : in

  • key in 딕셔너리 : 딕셔너리에 특정 key가 있는지 확인함
a = {'one':1, 'two':2, 'three':3}
print('one' in a) # True
print('aaa' in a) # False

 

 

딕셔너리 내장 함수 : max, min, sum

  • max(딕셔너리) : 딕셔너리 내 최댓값을 반환함
  • min(딕셔너리) : 딕셔너리 내 최솟값을 반환함
  • sum(딕셔너리) : 딕셔너리 내 총합을 계산하여 반환함
a = {1:'a', 2:'b', 3:'c'}
print(max(a)) # 3
print(min(a)) # 1
print(sum(a)) # 6

a = {'a':1, 'b':2, 'c':3}
print(max(a)) # c
print(min(a)) # a
print(sum(a)) # TypeError: unsupported operand type(s) for +: 'int' and 'str'

 

 

딕셔너리 내장 함수 심화

  • max(딕셔너리, default=값) : 딕셔너리가 비어있을 때 default 값을 출력함
  • min(딕셔너리, default=값) : 딕셔너리가 비어있을 때 default 값을 출력함
  • sum(딕셔너리, 기준 값) : 딕셔너리 내 총합과 기준 값을 더함
a = {}
print(max(a, default=1)) # 1
print(max(a)) # ValueError: max() arg is an empty sequence
print(min(a, default=1)) # 1
print(min(a)) # ValueError: min() arg is an empty sequence

a = {1:'a', 2:'b', 3:'c'}
print(sum(a, 10)) # 16

 

 

반응형