본문 바로가기

dict

[Python] 딕셔너리(dictionary) | Ordereddict(), defaultdict(), Counter() 출처: 파이썬 알고리즘 인터뷰, 박상길 파이썬의 딕셔너리는 키/값 구조로 이루어진 딕셔너리를 말한다 내부적으로는 해시 테이블로 구현되어 있다. 딕셔너리의 주요 연산 시간 복잡도 len(a) : O(1) a[key] : O(1) a[key] = value : O(1) key in a : O(1) 파이썬 3.6 이하에서는 입력 순서가 유지되지 않다 collections.OrderedDict()를 제공했다. 파이썬 3.7부터는 내부적으로 인덱스를 이용해 입력 순서를 유지하도록 개선돼었다. collections.defaultdict() 조회 시 항상 디폴트 값을 생성해 키 오류를 방지한다. from collections import defaultdict def def_value(): return "Not Pre.. 더보기
[윤성우의 열혈 파이썬 중급편] 17. dict & OrderedDict 출처 : 윤성우의 열혈 파이썬 : 중급 17. dict & OrderedDict dict은 저장 순서를 유지하기 시작했다 from colletions import OrderedDict od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 for kv in od.items(): print(kv) python 3.7부터 dict가 저장순서를 유지하기 때문에 OrderedDict을 이러한 목적으로 사용할 필요는 없다 그래도 OrderedDict을 써야할 이유가 있다면? d1 = dict(a = 1, b = 2, c = 3) d2 = dict(c = 3, a = 1, b = 2) print(d1 == d2) # True, d.. 더보기
[윤성우의 열혈 파이썬 중급편] 16. dict & defaultdict 출처 : 윤성우의 열혈 파이썬 : 중급 16. dict & defaultdict 키가 존재할 때와 존재하지 않을 때 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] = 1 # 키 'red'의 값을 1로 변경 d = {'red': 3, 'white': 2} d['red'] = 1 # 'red' : 1 추가 저장되어 있는 값 참조 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] += 1 # 키 'red'의 값을 1 증가 d = {'r.. 더보기
[윤성우의 열혈 파이썬 중급편] 14. dict의 루핑 기술과 컴프리헨션 출처 : 윤성우의 열혈 파이썬 : 중급 14. dict의 루핑 기술과 컴프리헨션 d = dict(a = 1, b = 2, c = 3) for k in d: print(d[k], end = ', ') # 1, 2, 3 dict.keys() : 딕셔너리의 키들만 참조하고자 할 때 dict.values() : 딕셔너리의 값들만 참조하고자 할 때 dict.items() : 딕셔너리의 키와 값을 튜플 형태로 참조하고자 할 때 위의 세 메소드가 반환하는 것을 가리켜 view 객체라고 한다 view 객체 d = dict(a = 1, b = 2, c = 3) for k in d.keys(): print(k, end = ', ') # a, b, c for v in d.values(): pri.. 더보기
[윤성우의 열혈 파이썬 중급편] 13. dict의 생성과 zip 출처 : 윤성우의 열혈 파이썬 : 중급 13. dict의 생성과 zip d1 = {'a': 1, 'b': 2, 'c': 3} print(d) # {'a': 1, 'b': 2, 'c': 3} type({}) # # dict 클래스 직접 생성 d2 = dict([('a', 1), ('b', 2), ('c', 3)]) # 딕셔너리 키가 문자열인 경우 d3 = dict(a = 1, b = 2, c = 3) # zip 함수 이용 d4 = dict(zip(['a', 'b', 'c'], [1, 2, 3])) assert(d1 == d2 == d3 .. 더보기