Python을 배워보자/4. 자료 구조

파이썬 리스트와 튜플의 차이점

_Blue_Sky_ 2024. 9. 22. 13:55
728x90
728x90

파이썬 리스트와 튜플: 자세한 비교와 활용 가이드

파이썬에서 리스트(list)와 튜플(tuple)은 데이터를 순서대로 저장하는 데 사용되는 유용한 자료형입니다. 둘 다 다양한 데이터 타입을 요소로 가질 수 있지만, 몇 가지 중요한 차이점이 있습니다. 이 글에서는 리스트와 튜플의 차이점을 자세히 살펴보고, 각 자료형을 어떤 상황에서 사용해야 하는지에 대해 알아보겠습니다.

1. 가변성 vs 불변성

  • 리스트(list): 리스트는 가변(mutable) 자료형입니다. 즉, 생성된 후에도 요소를 추가, 삭제, 수정할 수 있습니다.
  • 튜플(tuple): 튜플은 불변(immutable) 자료형입니다. 한번 생성된 튜플의 요소는 변경할 수 없습니다.
# 리스트 생성 및 수정
my_list = [1, 2, 3]
my_list.append(4)  # 요소 추가
my_list[0] = 0  # 요소 수정

# 튜플 생성 (수정 불가)
my_tuple = (1, 2, 3)
my_tuple[0] = 0  # 에러 발생
 

2. 사용되는 괄호

  • 리스트: 대괄호 []를 사용하여 생성합니다.
  • 튜플: 소괄호 ()를 사용하여 생성합니다.
728x90

3. 메모리 사용량 및 속도

  • 리스트: 요소를 추가하거나 삭제할 때 메모리 할당 및 재할당이 발생하여 튜플보다 메모리 사용량이 많을 수 있습니다.
  • 튜플: 불변의 특성 때문에 메모리 사용량이 적고, 연산 속도가 빠릅니다.

4. 활용 시나리오

  • 리스트:
    • 데이터를 자주 추가하거나 수정해야 할 때
    • 순서가 중요하고 중복되는 값을 허용해야 할 때
    • 스택, 큐 등의 자료구조를 구현할 때
  • 튜플:
    • 데이터가 변경되지 않고 고정되어 있어야 할 때 (예: 상수, 함수의 여러 반환값)
    • 딕셔너리의 키로 사용할 때 (딕셔너리의 키는 해시 가능해야 하므로 불변 자료형이어야 함)
    • 프로그램의 실행 속도를 높이고 싶을 때

5. 리스트와 튜플의 변환

  • 리스트를 튜플로 변환: tuple(my_list)
  • 튜플을 리스트로 변환: list(my_tuple)

6. 예시

# 딕셔너리의 키로 튜플 사용
my_dict = {(1, 2): 'value1', (3, 4): 'value2'}

# 함수에서 여러 값 반환
def my_function():
    return 1, 2, 3

result = my_function()  # result는 (1, 2, 3) 튜플

# 리스트를 컴프리헨션으로 생성
squares = [x**2 for x in range(10)]

# 튜플을 컴프리헨션으로 생성
even_numbers = tuple(x for x in range(10) if x % 2 == 0)
 

결론

리스트와 튜플은 각각 고유한 특징을 가지고 있으며, 어떤 상황에 적합한 자료형인지 파악하는 것이 중요합니다. 데이터의 가변성, 메모리 사용량, 연산 속도 등을 고려하여 적절한 자료형을 선택하면 더 효율적이고 안정적인 코드를 작성할 수 있습니다.

 

728x90
728x90