안녕하세요. BlockDMask 입니다.
오늘은 파이썬의 리스트(List)와 튜플(Tuple)의 차이점에 대해서 알아보겠습니다.
파이썬을 처음 공부하다 보면 리스트와 튜플이 비슷하게 생겨서 헷갈릴 수 있습니다.
하지만 중요한 차이점이 있고, 그에 따라 사용하는 목적도 다릅니다.
1. 리스트(List)와 튜플(Tuple)의 기본 구조
# 리스트는 대괄호 [] 사용
my_list = [1, 2, 3, "BlockDMask"]
# 튜플은 소괄호 () 사용
my_tuple = (1, 2, 3, "BlockDMask")
print(type(my_list)) # <class 'list'>
print(type(my_tuple)) # <class 'tuple'>
설명: 리스트는 대괄호 []
, 튜플은 소괄호 ()
를 사용합니다.
둘 다 여러 개의 값을 하나로 묶는 자료형이지만, 튜플은 변경이 불가능하다는 특징이 있습니다.
2. 변경 가능 여부 (Mutability)
my_list = [1, 2, 3]
my_list[0] = 100
print(my_list) # [100, 2, 3]
my_tuple = (1, 2, 3)
my_tuple[0] = 100 # TypeError 발생
설명: 리스트는 값을 수정할 수 있지만, 튜플은 수정이 불가능합니다.
튜플을 선언한 후에는 값을 바꾸거나 삭제할 수 없습니다. 그래서 데이터의 불변성을 유지해야 하는 경우 튜플을 사용합니다.
3. 메모리 사용 및 성능 차이
import sys
list_data = [1, 2, 3, 4, 5]
tuple_data = (1, 2, 3, 4, 5)
print(sys.getsizeof(list_data)) # 예: 104
print(sys.getsizeof(tuple_data)) # 예: 88
설명: 같은 데이터를 담고 있어도 튜플이 리스트보다 더 적은 메모리를 사용합니다.
따라서 데이터 변경이 필요 없다면 튜플을 사용하는 것이 성능적으로 더 좋습니다.
4. 사용 가능한 메서드
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # [1, 2, 3, 4]
my_tuple = (1, 2, 3)
# my_tuple.append(4) # AttributeError 발생
설명: 리스트는 append()
, remove()
, sort()
등 다양한 메서드를 지원합니다.
반면 튜플은 count()
와 index()
정도만 지원하며 메서드가 매우 제한적입니다.
5. 튜플은 어디에 쓰일까?
# 여러 값을 반환할 때 튜플로 반환하는 예
def get_user_info():
name = "BlockDMask"
age = 33
return name, age
info = get_user_info()
print(info) # ('BlockDMask', 33)
print(type(info)) # <class 'tuple'>
설명: 함수에서 여러 값을 반환할 때 튜플로 묶어서 반환하는 경우가 많습니다.
이 경우 변경할 필요가 없는 값들이므로 튜플을 사용하는 것이 적절합니다.
6. 요약 정리
구분 | 리스트 (List) | 튜플 (Tuple) |
---|---|---|
표기 | [] 대괄호 | () 소괄호 |
변경 가능 | 가능 (mutable) | 불가능 (immutable) |
메모리 사용 | 더 큼 | 더 작음 |
속도 | 조금 느림 | 조금 빠름 |
메서드 | append, remove 등 다양 | 거의 없음 |
이상, 파이썬 리스트와 튜플 차이에 대해서 적어보았습니다.
오늘도 읽어주셔서 감사합니다.
함께 읽으면 좋을 글
2020.11.25 - [<개인공부>/[Python]] - [python] 파이썬 튜플(tuple)에 대해서
2020.09.04 - [<개인공부>/[Python]] - [python] 파이썬 리스트(list) 정리 및 예제 (1탄 기본편)
2020.10.21 - [<개인공부>/[Python]] - [python] 파이썬 리스트(list) 정리 및 예제 (2탄 응용편)
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬 리스트 슬라이싱 정리 ([start:end:step] 완전 이해) (0) | 2025.04.29 |
---|---|
[Python] 파이썬 리스트 정렬 심화 - key, reverse, lambda, 사용자 정의 정렬까지 (0) | 2025.04.25 |
[Python] 파이썬 index() 함수 정리 (문자 위치 찾기, 리스트 위치 찾기) (0) | 2025.04.23 |
[Python] 파이썬 range()의 숨겨진 기능들 (0) | 2025.04.05 |
[Python] 파이썬 클래스 변수 vs 인스턴스 변수 차이 (0) | 2025.04.03 |
[Python] 파이썬 클래스 초보자 가이드 (__init__, self) (1) | 2025.04.01 |
[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지) (0) | 2025.03.31 |
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |