Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 딕셔너리(사전) 자료형 완벽 정리 – 키-값 쌍으로 데이터 관리하기


파이썬(Python)의 딕셔너리(dictionary)는 일종의 해시 테이블(hash table) 방식으로 동작하는 자료형입니다. 펄(Perl) 등의 언어에서 볼 수 있는 연관 배열이나 해시와 비슷하게 작동하며, 데이터를 키(key)와 값(value)의 쌍으로 저장합니다. 키에는 거의 모든 파이썬 자료형을 사용할 수 있지만 일반적으로 숫자나 문자열이 많이 쓰이며, 값에는 문자열, 숫자, 리스트, 심지어 다른 딕셔너리까지 어떤 파이썬 객체든 자유롭게 담을 수 있습니다.

딕셔너리 기본 사용법

딕셔너리는 중괄호({ })로 감싸서 정의하고, 대괄호([]) 안에 키를 넣어 값을 저장하거나 꺼낼 수 있습니다. 아래 예제를 통해 확인해 보겠습니다.

#!/usr/bin/python

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"

tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}

print(dict['one'])        # 'one' 키에 해당하는 값 출력
print(dict[2])            # 2 키에 해당하는 값 출력
print(tinydict)           # 딕셔너리 전체 출력
print(tinydict.keys())    # 모든 키 출력
print(tinydict.values())  # 모든 값 출력

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

This is one
This is two
{'name': 'john', 'code': 6734, 'dept': 'sales'}
dict_keys(['name', 'code', 'dept'])
dict_values(['john', 6734, 'sales'])

딕셔너리의 주요 특징

  • 키는 불변(immutable) 자료형이어야 합니다. 문자열, 숫자, 튜플처럼 변경할 수 없는 자료형만 키로 사용할 수 있으며, 리스트처럼 값이 바뀔 수 있는 자료형은 키로 쓸 수 없습니다.
  • 매우 빠른 조회 속도를 자랑합니다. 해시 테이블 구조를 기반으로 하기 때문에 키를 이용해 값을 찾는 작업이 리스트 탐색보다 훨씬 효율적입니다.
  • 순서에 대한 올바른 이해가 필요합니다. 전통적으로 딕셔너리는 요소 간 순서가 없는(unordered) 자료형이었습니다. 즉, 요소들이 "순서가 어긋난 것"이 아니라 애초에 순서라는 개념 자체가 없다고 이해하는 것이 맞습니다. 참고로 파이썬 3.7부터는 항목이 삽입된 순서가 그대로 유지됩니다.

한 가지 팁을 덧붙이자면, 위 예제처럼 변수 이름을 dict로 지정하면 파이썬의 내장 함수 dict()와 이름이 겹치므로, 실제 프로젝트에서는 my_dict처럼 다른 이름을 사용하는 것이 좋은 습관입니다.