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

파이썬 튜플(Tuple)과 딕셔너리(Dictionary)의 차이점 완벽 정리

파이썬 튜플과 딕셔너리, 무엇이 다를까?

튜플(tuple)과 딕셔너리(dictionary)는 파이썬에서 가장 널리 사용되는 자료구조지만, 설계 목적과 동작 방식이 완전히 다릅니다. 두 자료구조의 핵심적인 차이점을 하나씩 살펴보겠습니다.

튜플(Tuple)의 특징

튜플은 여러 값을 하나로 묶어 관리하는 불변(immutable) 시퀀스 자료형입니다. 주요 특징은 다음과 같습니다.

  • 요소의 순서가 그대로 유지됩니다.
  • 한 번 생성하면 내용을 추가, 삭제, 수정할 수 없습니다.
  • 모든 데이터 타입을 담을 수 있으며, 서로 다른 타입을 섞어 저장해도 문제없습니다.
  • 0부터 시작하는 숫자 인덱스를 통해 요소에 접근합니다.

딕셔너리(Dictionary)의 특징

파이썬 딕셔너리는 해시 테이블(hash table)을 기반으로 구현된 자료구조로, 키와 값의 쌍으로 데이터를 저장합니다.

  • 기본적으로 순서가 보장되지 않습니다. (Python 3.7 이상에서는 삽입 순서가 유지되지만, 딕셔너리의 본질은 순서가 아닌 키-값 매핑입니다.)
  • 모든 항목은 반드시 키(key)값(value)의 쌍으로 구성됩니다.
  • 숫자 인덱스가 아닌 키를 사용해 값에 접근합니다.
  • 항목을 자유롭게 추가, 수정, 삭제할 수 있는 가변(mutable) 자료형입니다.
  • 키로는 해시 가능한(hashable) 타입만 사용할 수 있습니다. 즉, 문자열, 숫자, 튜플은 키가 될 수 있지만 리스트나 딕셔너리는 키로 쓸 수 없습니다. 값에는 어떤 타입이든(다른 딕셔너리 포함) 자유롭게 사용할 수 있습니다.

두 자료구조 한눈에 비교하기

구분튜플딕셔너리
변경 가능 여부불변(immutable)가변(mutable)
접근 방식숫자 인덱스키(key)
구조값의 나열키-값 쌍
내부 구현배열 기반해시 테이블

생성 예시

흥미롭게도 두 자료구조 모두 컴프리헨션(comprehension)을 활용해 생성할 수 있습니다. 아래 예시를 확인해 보세요.

# 튜플 예시 — 다양한 타입을 함께 저장
my_tuple = (1, 'a', (3, 6, 8), 'string')

# 딕셔너리 예시 — 키와 값의 쌍으로 저장
my_dict = {'foo': [1, 2, 3], 'bar': 'baz'}

정리하면, 순서대로 고정된 데이터를 저장할 때는 튜플을, 키를 통해 빠르게 값을 찾아야 할 때는 딕셔너리를 사용하는 것이 좋습니다. 각 자료구조의 특성을 이해하고 상황에 맞게 선택하면 더 효율적이고 읽기 좋은 코드를 작성할 수 있습니다.