반응형
Python은 다양한 데이터 구조를 제공합니다. 그 중 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의 함수 정의와 사용법 - 초보자용 상세 가이드
반응형
'파이썬' 카테고리의 다른 글
[Python] 클래스(class)와 객체(object) 기본 개념 설명하기 (0) | 2025.04.04 |
---|---|
[Python] try, except 예외 처리 문법과 실전 예제 (0) | 2025.04.04 |
[Python] 파일 읽기/쓰기 기본 사용법 (open, read, write) (0) | 2025.04.03 |
[Python] ValueError 오류가 발생하는 원인과 해결 방법 (0) | 2025.04.03 |
[Python] range() 함수 사용법과 for문에서의 활용 예제 (0) | 2025.04.01 |
댓글