이 세 가지는 Python에서 가장 많이 사용되는 컬렉션이며, 각각 다른 요구에 적합합니다. 핵심 차이는 가변성, 순서, 그리고 요소에 접근하는 방식입니다.
List — 순서 있는 가변 시퀀스
python
fruits = [, , ]
fruits[]
fruits.append()
fruits[] =
(fruits)
항목을 추가, 제거, 재정렬하는 등 변경되는 순서 있는 컬렉션에는 list를 사용하세요.
point = (3, 4)
point[0] # 3 — 인덱스 접근 (list와 유사)
point[0] = 5 # ❌ TypeError — 튜플은 불변
x, y = point # 언패킹 — 일반적인 사용법
좌표, 레코드, 여러 값을 반환하는 함수 등 변경되어서는 안 되는 고정된 값 그룹에는 tuple을 사용하세요. 불변이기 때문에 튜플은 dict 키가 될 수도 있고 메모리 효율도 약간 더 좋습니다.
user = {"name": "Ann", "age": 30}
user["name"] # "Ann" — 인덱스가 아니라 키(KEY)로 접근
user["email"] = "[email protected]" # 가변 — 추가/갱신
user.get("phone", "N/A") # 기본값을 사용한 안전한 접근
for k, v in user.items(): ... # 키-값 쌍을 순회
이름으로 빠른 조회(O(1))를 하기 위해 키를 값에 매핑하려면 dict를 사용하세요. Python 3.7부터 dict는 삽입 순서를 유지합니다.
List Tuple Dict
가변? 예 아니오 예
순서? 예 예 예 (삽입 순서, 3.7+)
접근 방식 인덱스 인덱스 키
문법 [1, 2] (1, 2) {"k": v}
용도 변하는 시퀀스 고정 레코드 키→값 조회
dict 키? 아니오 예 아니오
올바른 컬렉션을 선택하는 것은 정확성, 성능, 의도에 영향을 미치는 기본적이고 일상적인 Python 의사결정입니다.
가변적인 순서 데이터에는 list, 고정/불변 레코드(및 dict 키)에는 tuple, 키 기반 빠른 조회에는 dict를 사용하면 의도를 전달하고(튜플은 "이것은 변하지 않는다"는 신호) 올바른 성능 특성을 얻습니다(dict의 O(1) 조회 vs list의 O(n) 탐색).
이를 잘못 사용하는 것(예: dict 조회가 맞는데 list를 스캔하는 것)은 느리거나 불명확한 코드의 흔한 원인입니다.