본문 바로가기
파이썬

[Python] list, set, tuple, dict 차이점과 선택 기준

by JJONY 2025. 4. 3.
반응형

Python은 다양한 데이터 구조를 제공합니다. 그 중 list, set, tuple, dict는 가장 기본적이면서도 많이 사용되는 자료형입니다. 이들 각각은 저장 방식, 변경 가능 여부, 데이터의 중복 허용 여부 등에서 차이가 있습니다. 초보자라면 어떤 상황에 어떤 자료형을 선택해야 할지 헷갈릴 수 있습니다. 이번 포스팅에서는 list, set, tuple, dict의 차이점과 실제 코드를 통해 어떤 상황에 어떤 자료형을 선택하면 좋은지 정리해보겠습니다.

list, set, tuple, dict


1. list (리스트) - 순서 있고 변경 가능한 집합

1. 특징

  • 순서가 있음 (index로 접근 가능)
  • 중복 허용
  • 요소 수정 가능 (mutable)

2. 예제

fruits = ['apple', 'banana', 'apple']
print(fruits[1])  # 출력: banana
fruits[1] = 'grape'
print(fruits)     # 출력: ['apple', 'grape', 'apple']

3. 사용 예시

  • 리스트는 여러 개의 값을 순서대로 저장할 때 유용
  • 반복문, 정렬, 슬라이싱 등 다양한 기능과 잘 호환됨

2. set (셋) - 중복 없는 비순서 집합

1. 특징

  • 순서 없음 (index로 접근 불가)
  • 중복 불가
  • 요소 수정 가능 (mutable)

2. 예제

numbers = {1, 2, 3, 2, 1}
print(numbers)  # 출력: {1, 2, 3}
numbers.add(4)
print(numbers)  # 출력: {1, 2, 3, 4}

3. 사용 예시

  • 중복을 제거하고자 할 때
  • 교집합, 합집합 등 집합 연산이 필요할 때
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 & set2)  # 출력: {2, 3}

 


3. tuple (튜플) - 순서 있고 변경 불가능한 집합

1. 특징

  • 순서 있음 (index 접근 가능)
  • 중복 허용
  • 요소 수정 불가 (immutable)

2. 예제

coordinates = (10, 20)
print(coordinates[0])  # 출력: 10
# coordinates[0] = 30  # 오류 발생

3. 사용 예시

  • 값의 변경을 원하지 않는 고정된 데이터를 저장할 때
  • 함수 반환값으로 여러 값을 동시에 반환할 때 자주 사용
def get_user():
    return ('Alice', 30)
name, age = get_user()

 


4. dict (딕셔너리) - 키-값 쌍의 집합

1. 특징

  • 순서 있음 (Python 3.7부터 삽입 순서 유지)
  • 키는 중복 불가, 값은 중복 가능
  • 요소 수정 가능 (mutable)

2. 예제

user = {
    'name': 'Alice',
    'age': 30
}
print(user['name'])  # 출력: Alice
user['age'] = 31

3. 사용 예시

  • 구조화된 데이터를 저장할 때
  • 키를 통해 값을 빠르게 검색하고자 할 때
if 'name' in user:
    print(user['name'])

 


5. 4가지 자료형 비교표 및 선택 기준

구분 list set tuple dict
순서 O X O O (3.7 이후)
중복 허용 O X O 키: X / 값: O
수정 가능 O O X O
인덱스 접근 O X O 키로 접근
사용 예 나열된 값들 중복 제거 고정된 값 구조화된 데이터

선택 기준

  • 순서가 있고 값이 자주 바뀌는 경우: list
  • 중복을 허용하지 않아야 하는 경우: set
  • 값이 변경되지 않도록 보호할 때: tuple
  • 데이터를 키로 빠르게 검색하고자 할 때: dict

6. 추가 팁 및 참고 사항

  • set()과 dict.keys()는 매우 유사한 방식으로 작동함
  • list()로 자료형을 변환하여 다양한 메서드 사용 가능
  • 각 자료형은 iterable이기 때문에 for문 등에서 자유롭게 활용 가능
for key in user:
    print(key, user[key])

7. 요약 및 마무리

이번 포스팅에서는 Python의 기본 자료형인 list, set, tuple, dict의 차이점과 선택 기준을 정리해 보았습니다. 각 자료형은 사용 목적과 특성이 뚜렷하게 다르므로 상황에 맞는 구조를 선택하는 것이 중요합니다. 다양한 예제와 함께 실제 데이터를 어떻게 다루는지 연습하면서 각 자료형의 특성을 익히면 훨씬 더 효율적인 Python 코드를 작성할 수 있습니다.


8. 관련 글 링크

  • 관련 글: Python의 함수 정의와 사용법 - 초보자용 상세 가이드
반응형

댓글