리스트(List)와 튜플(Tuple)은 순서가 있는 시퀀스(Sequence) 자료형입니다. 반면 딕셔너리(Dictionary)는 키(key)와 값(value) 쌍으로 구성된 해시 테이블 구조의 자료형입니다. 세 자료형 모두 파이썬 프로그래밍에서 가장 널리 사용되는 컬렉션 타입이지만, 각각의 특성과 용도가 분명히 다릅니다.
1. 가변성(Mutability)의 차이
리스트와 딕셔너리는 가변(mutable) 객체입니다. 즉, 생성된 이후에도 새로운 항목을 추가하거나 기존 항목을 수정·삭제할 수 있습니다. 반면 튜플은 불변(immutable) 객체이므로, 한 번 생성하면 항목을 추가하거나 삭제하는 작업이 불가능합니다.
2. 선언(생성) 방식
세 자료형 모두 쉼표로 구분된 항목들의 모음이라는 공통점이 있지만, 항목을 감싸는 괄호가 서로 다릅니다. 리스트는 대괄호 [], 튜플은 소괄호 (), 딕셔너리는 중괄호 {}를 사용합니다.
>>> L1 = [12, "Ravi", "B.Com FY", 78.50] # 리스트
>>> T1 = (12, "Ravi", "B.Com FY", 78.50) # 튜플
>>> D1 = {"Rollno": 12, "class": "B.Com FY", "percentage": 78.50} # 딕셔너리
3. 인덱싱과 값 접근 방법
리스트와 튜플의 항목은 인덱스(index)로 관리됩니다. 슬라이스 연산자를 활용하면 특정 위치의 항목에 손쉽게 접근할 수 있습니다.
>>> print(L1[2])
B.Com FY
>>> print(T1[2])
B.Com FY
반면 딕셔너리의 항목은 인덱스가 아닌 키(key)를 기준으로 접근합니다. 대괄호 안에 키를 직접 넣거나, 딕셔너리에서 제공하는 get() 메서드를 사용하면 해당 키와 연결된 값을 반환받을 수 있습니다.
>>> print(D1['class'])
B.Com FY
>>> print(D1.get('class'))
B.Com FY
4. 한눈에 보는 비교 요약
| 구분 | 리스트(List) | 튜플(Tuple) | 딕셔너리(Dictionary) |
|---|---|---|---|
| 순서 | 있음 (인덱스 기반) | 있음 (인덱스 기반) | 키 기반 저장 |
| 가변 여부 | 가변 (수정 가능) | 불변 (수정 불가) | 가변 (수정 가능) |
| 문법 | [ ] | ( ) | { } |
| 값 접근 방식 | 인덱스 | 인덱스 | 키 또는 get() |
5. 어떤 상황에서 어떤 자료형을 쓸까?
- 리스트: 데이터를 자주 추가·삭제·수정해야 하는 경우에 적합합니다.
- 튜플: 한 번 정하면 바뀌지 않는 고정 데이터(예: 좌표, 설정값)를 저장할 때 유용하며, 불변이므로 해시 가능(hashable)하여 딕셔너리의 키로도 사용할 수 있습니다.
- 딕셔너리: 학번-이름처럼 키와 값의 매핑 관계가 필요한 데이터를 다룰 때 가장 효율적입니다.
세 자료형의 특성을 정확히 이해하고 있으면, 상황에 맞는 최적의 자료 구조를 선택하여 더 깔끔하고 효율적인 파이썬 코드를 작성할 수 있습니다.