프로그래밍/python

Python 리스트(list)와 튜플(tuple) 개념 정리

싯타마 2024. 1. 26. 00:43

파이썬은 데이터를 저장하고 처리하는 데 필요한 다양한 내장 데이터 타입을 제공합니다. 그 중에서도 리스트(List)와 튜플(Tuple)은 자주 사용되는 타입으로, 데이터의 순서와 집합을 다루는 데 매우 유용합니다. 이 두 타입의 가장 큰 차이점은 '변경 가능성(mutable vs immutable)'입니다.

1. 리스트(List) - 유연하고 동적인 컨테이너

- 리스트는 '변경 가능한(mutable)' 데이터 타입으로, 순서가 있는 요소의 집합입니다. 리스트는 대괄호 [] 또는 list() 함수를 통해 생성할 수 있으며, 다양한 데이터 타입을 포함할 수 있습니다.

# 빈 리스트 생성
list1 = []

# 숫자로 구성된 리스트
list2 = [1, 2, 3, 4, 5]

# 중첩 리스트
list3 = [1, [2, 3], ["a", "b"]]

 

- 리스트는 다음과 같은 방법으로 요소를 추가, 수정, 삭제할 수 있습니다

# 요소 추가
example_list = [1, 2, 3]
example_list.append(4)  # 결과: [1, 2, 3, 4]
example_list.extend([5, 6])  # 결과: [1, 2, 3, 4, 5, 6]

# 요소 삽입
example_list.insert(2, 'a')  # 결과: [1, 2, 'a', 3, 4, 5, 6]

# 요소 수정
example_list[2] = 'hi'  # 결과: [1, 2, 'hi', 3, 4, 5, 6]

# 요소 삭제
example_list.remove('hi')  # 결과: [1, 2, 3, 4, 5, 6]
del example_list[5]  # 결과: [1, 2, 3, 4, 5]

# 요소 삭제 및 반환
five = example_list.pop()  # 결과: [1, 2, 3, 4], five = 5
one = example_list.pop(0)  # 결과: [2, 3, 4], one = 1

 

2. 튜플(Tuple) - 변경이 불가능하여 안전성과 무결성 가진 컨테이너

 

튜플은 '변경 불가능한(immutable)' 데이터 타입으로, 한 번 생성되면 그 값이 변경될 수 없습니다. 이는 데이터의 안정성과 무결성을 유지하는 데 유용하고 주로 데이터를 읽기 전용으로 사용할 때 적합 합니다. 튜플은 소괄호 () 또는 tuple() 함수를 사용하여 생성할 수 있습니다.

 

 또한 튜플 언패킹을 통해 여러 변수에 값을 한 번에 할당할 수 있습니다:

# 튜플 언패킹
f, g, h = (1, 2, 3) # f = 1 , g = 2, h = 3

 

 

리스트와 튜플은 파이썬 프로그래밍에서 각기 다른 상황에 맞게 사용됩니다. 리스트는 변화가 필요한 데이터 집합에 적합하며, 튜플은 변하지 않는 데이터 집합을 처리할 때 사용되는 것이 일반적입니다. 이 두 타입을 적절히 사용함으로써, 파이썬 프로그래밍의 효율성과 안정성을 높일 수 있습니다.

 

리스트와 튜플은 서로 타입변환이 가능하다 

# 리스트를 튜플로 변환
my_list = [1, 2, 3, 4]
my_tuple = tuple(my_list)
print(my_tuple)  # (1, 2, 3, 4)

# 튜플을 리스트로 변환
my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
print(my_list)  # [1, 2, 3, 4]
 
 

 

위 변환은 데이터의 유형을 변경할 필요가 있을 때, 예를 들어 튜플의 요소를 수정하거나, 리스트를 튜플로 변경하여 데이터의 안정성을 높이고 싶을 때 유용합니다. 데이터의 본질적인 내용은 그대로 유지하면서 컨테이너 타입만 변경하는 것이므로, 데이터 처리에 있어서 유연성을 제공합니다.