AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

딕셔너리(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)를 사용해 중첩 구조의 안전한 복사를 수행하세요.
  • **kwargiterable을 혼용할 경우, dict()의 예상 동작을 반드시 확인해야 합니다.