-
[Python] 리스트와 튜플(tuple)의 차이점 이해하기코딩/파이썬 2023. 7. 29. 17:52반응형
Python을 많이 사용하는 이유 중에 하나가, 기본 내장된 다양하고 잘 설계된 데이터 구조입니다. 많이 사용하는 데이터 구조로 리스트와 튜플이 있는데요. 초보자 분들이 리스트와 튜플을 많이 헷갈려 하십니다. 이런 분들을 위해서, 이번 포스팅에서는 리스트와 튜플의 차이점에 대해서 알기 쉽게 설명해보도록 하겠습니다.
목차
1. 리스트와 튜플이란?
리스트(List)
리스트는 Python에서 가장 유연한 컨테이너 데이터 구조으로, 다양한 요소를 순서대로 저장할 수 있는 목록형 데이터 구조입니다. 리스트는 대괄호 [ ]를 사용하여 표현하며, 아래와 같이 사용할 수 있습니다.
my_list = [1, "Hello", 3.14]
튜플(Tuple)
튜플도 리스트와 유사하게 다양한 데이터의 목록입니다. 리스트와 거의 동일하게 사용할 수 있으나, 한 가지 차이점은 한 번 생성되면 변경할 수 없다는 점입니다. 이런 특성을 immutable 이라고 합니다. 그리고 튜플은 소괄호 () 를 사용합니다.
my_tuple = (1, "Hello", 3.14)
값을 읽는 측면에서는 리스트와 튜플을 거의 차이가 없습니다. 아래는 리스트와 튜플을 읽어서 사용하는 사례입니다. 인덱싱, 슬라이싱, FOR의 사용 사례에서 튜플과 리스트의 결과가 같음을 확인할 수 있습니다.
my_tuple = (1, "Hello", 3.14) my_list = [1, "Hello", 3.14] # 읽기 print( my_tuple[1] ) print( my_list[1] ) # 슬라이싱 print( my_tuple[:1] ) print( my_list[:1] ) # for 문 for i in my_tuple : # tuple for 문 print(i) for i in my_list : # list for 문 print(i)
2. 리스트와 튜플의 주요 차이점
앞에서 리스트와 튜플을 읽을 때는 문법상 차이가 거의 없다고 언급했는데요. 그렇다면 리스트와 튜플의 차이점은 무엇일까요?
가변성(Mutability)
가장 중요한 차이점은 리스트는 요소의 변경이 가능(mutable)하고, 튜플은 요소의 변경이 불가능(immutable)하다는 점입니다. 리스트의 요소는 생성 후에도 변경이 가능합니다:
my_list = [1, 2, 3] my_list[1] = "Two" # Index를 통해 요소를 변경 print(my_list) # 출력: [1, "Two", 3]
반면에 튜플의 요소는 한 번 생성되면 변경할 수 없습니다. 만약 변경을 하려고 한다면, 아래와 같이 TypeError 오류가 발생합니다.
my_tuple = (1, 2, 3) my_tuple[1] = "Two" # TypeError를 일으킵니다.
이 밖에 프로그래밍 속성 상 차이점이 있는데요
튜플이 메모리 사용량 작고 연산 속도가 빠름.
효율적인 메모리 사용을 위해, 변경 가능성이 없는 데이터는 튜플로 저장하는 것이 좋습니다. 튜플은 리스트보다 더 적은 메모리를 사용하기 때문입니다. 또한, 튜플은 리스트보다 연산 속도가 빠릅니다. 이는 튜플이 불변하기 때문에 메모리에 더 효율적으로 저장되고, 그래서 연산이 더 빠르게 수행되는 원리를 따릅니다.
3. 언제 리스트를 사용하고 언제 튜플을 사용할까?
데이터가 변경될 가능성이 있다면 리스트를 사용하고, 변경될 가능성이 없다면 튜플을 사용 하면 됩니다. 예를 들어, 월별 온도 데이터와 같이 변경될 수 있는 데이터는 리스트에 저장하고, 요일 이름과 같이 변경될 필요가 없는 데이터는 튜플에 저장하는 것이 좋습니다.
이상 리스트와 튜플의 차이점이었습니다.
https://smart-worker.tistory.com/48
https://smart-worker.tistory.com/47
반응형'코딩 > 파이썬' 카테고리의 다른 글
[Python] GIL(Global interpreter Lock) 이해하기 (0) 2023.07.29 [Python]람다(lambda) 함수 이해하기 (0) 2023.07.29 [Python] 초보자를 위한 데코레이터(Decorator) 사용법 (0) 2023.07.29 [Python]List Comprehension을 활용한 코드 최적화 (0) 2023.07.29 chatGPT로 Text 요약하기 (0) 2023.04.16