파이썬(Python)

파이썬에서 리스트와 튜플은 시퀀스 타입의 데이터 구조.

mdesign 2024. 8. 4. 10:28

파이썬에서 리스트와 튜플은 시퀀스 타입의 데이터 구조로, 여러 값을 하나의 변수에 저장할 수 있습니다. 둘 다 순서가 있으며, 인덱스를 사용하여 요소에 접근할 수 있습니다. 그러나 리스트는 가변(mutable)하고 튜플은 불변(immutable)하다는 점에서 차이가 있습니다. 다음은 리스트와 튜플에 대한 자세한 설명입니다.


1. 리스트 (List)

리스트는 가변적인 데이터 구조로, 대괄호([])로 감싸고, 쉼표로 구분된 요소들을 포함합니다.

리스트 생성

fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]


리스트 요소 접근 및 변경

인덱스를 사용하여 리스트 요소에 접근하고 변경할 수 있습니다.

fruits = ["apple", "banana", "cherry"]

# 요소 접근
print(fruits[0])  # "apple"
print(fruits[-1]) # "cherry"

# 요소 변경
fruits[1] = "blueberry"
print(fruits)  # ["apple", "blueberry", "cherry"]


< 리스트 메서드 >

리스트는 다양한 내장 메서드를 제공합니다.

요소 추가

fruits = ["apple", "banana"]
fruits.append("cherry")  # 리스트 끝에 요소 추가
print(fruits)  # ["apple", "banana", "cherry"]

fruits.insert(1, "blueberry")  # 특정 위치에 요소 추가
print(fruits)  # ["apple", "blueberry", "banana", "cherry"]


요소 제거

fruits = ["apple", "banana", "cherry"]
fruits.remove("banana")  # 특정 요소 제거
print(fruits)  # ["apple", "cherry"]

fruits.pop()  # 마지막 요소 제거
print(fruits)  # ["apple"]

fruits.pop(0)  # 특정 인덱스의 요소 제거
print(fruits)  # []


 

리스트 결합 및 확장

fruits = ["apple", "banana"]
more_fruits = ["cherry", "date"]
fruits.extend(more_fruits)  # 리스트 확장
print(fruits)  # ["apple", "banana", "cherry", "date"]

all_fruits = fruits + more_fruits  # 리스트 결합
print(all_fruits)  # ["apple", "banana", "cherry", "date", "cherry", "date"]


정렬 및 뒤집기

numbers = [3, 1, 4, 1, 5, 9]
numbers.sort()  # 오름차순 정렬
print(numbers)  # [1, 1, 3, 4, 5, 9]

numbers.reverse()  # 리스트 뒤집기
print(numbers)  # [9, 5, 4, 3, 1, 1]

 


2. 튜플 (Tuple)


튜플은 불변의 데이터 구조로, 소괄호(())로 감싸고, 쉼표로 구분된 요소들을 포함합니다.

튜플 생성

fruit_tuple = ("apple", "banana", "cherry")
number_tuple = (1, 2, 3, 4, 5)
mixed_tuple = (1, "hello", 3.14, True)

 

튜플 요소 접근

인덱스를 사용하여 튜플 요소에 접근할 수 있습니다.

fruit_tuple = ("apple", "banana", "cherry")

# 요소 접근
print(fruit_tuple[0])  # "apple"
print(fruit_tuple[-1]) # "cherry"


튜플의 불변성

튜플은 불변이므로, 요소를 변경할 수 없습니다.

fruit_tuple = ("apple", "banana", "cherry")
# fruit_tuple[1] = "blueberry"  # TypeError: 'tuple' object does not support item assignment

 

튜플 메서드

튜플은 리스트에 비해 제공되는 메서드가 적습니다. 주요 메서드는 count()와 index()입니다.

number_tuple = (1, 2, 3, 1, 4, 1)

print(number_tuple.count(1))  # 3 (1의 개수)
print(number_tuple.index(3))  # 2 (3의 인덱스) 

 


3. 리스트와 튜플 변환


리스트와 튜플은 서로 변환할 수 있습니다.

# 리스트를 튜플로 변환
fruits = ["apple", "banana", "cherry"]
fruit_tuple = tuple(fruits)
print(fruit_tuple)  # ("apple", "banana", "cherry")

# 튜플을 리스트로 변환

numbers = (1, 2, 3, 4, 5)
number_list = list(numbers)
print(number_list)  # [1, 2, 3, 4, 5]


리스트와 튜플은 각자의 특성과 용도가 있습니다. 가변적인 데이터 구조가 필요하면 리스트를, 불변의 데이터 구조가 필요하면 튜플을 사용하는 것이 좋습니다.