딕셔너리(Dictionary) in Python (2) 요약
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Python 초보 및 중급 개발자
- 딕셔너리 구조 및 복사 방식에 대한 이해가 필요한 사람들
- 난이도: 중간(기본 문법과 고급 기능(예: 중첩 딕셔너리, 깊은 복사)을 포함)
핵심 요약
dict()
생성자 사용 시kwarg와
iterable
인자 사용 방법**dict([('key', 'value')], key='value')
형식으로 사용 가능.dict()
은 리스트, 튜플, 문자열 등으로 생성 불가.- 중첩 딕셔너리(2D Dictionary)는
v['person1']['name']
형식으로 접근 가능. - 깊은 복사(deepcopy)는
copy.deepcopy()
사용해야 안전.
섹션별 세부 요약
1. `dict()` 생성자 활용 방법
dict()
은iterable
및**kwarg
를 인자로 사용.- 예:
dict([('name', 'John'), ('age', 36)]), dict(name='John', age=36)
iterable
인자로 사용 시,['a', 'b', 'c']
와 같은 리스트는 딕셔너리로 변환 불가.dict()
은range()
이나string
도 딕셔너리로 변환 불가.
2. 딕셔너리 접근 및 수정
- 키(key) 기반 접근
v['name']
으로 값 접근,v['name'] = 'David'
로 값 수정 가능.- 인덱스(예:
v[0]
) 또는 슬라이스(예:v[0:2]
) 사용 시KeyError
발생. - 중첩 딕셔너리(2D Dictionary)
v = {'person1': {'name': 'John', 'age': 36}, ...}
형식으로 정의.v['person1']['name']
으로 중첩된 값 접근 가능.
3. 딕셔너리 복사 방법
- 참조 복사(
v2 = v1
): 동일한 객체를 참조. - shallo copy(
v2 = v1.copy()
): 값 복사만 수행, 중첩 구조는 참조. - deep copy(
deepcopy()
): 모든 레벨의 복사 수행, 안전. - 예:
from copy import deepcopy; v2 = deepcopy(v1)
결론
- 딕셔너리 생성 시
dict()
의 인자 규칙을 준수하고, 깊은 복사(deepcopy)를 사용해 중첩 구조의 안전한 복사를 수행하세요. **kwarg
와iterable
을 혼용할 경우,dict()
의 예상 동작을 반드시 확인해야 합니다.