Data Engineering/python

EP03 | Python 자료구조 #1 | 리스트와 튜플

ygtoken 2025. 3. 19. 22:30
728x90

이 글에서 다루는 개념

Python에서 가장 많이 사용되는 자료구조인 **리스트(List)와 튜플(Tuple)**의 특징과 차이점을 배웁니다.

  • 리스트: 순서가 있고 변경 가능한(mutable) 자료구조
  • 튜플: 순서가 있지만 변경 불가능한(immutable) 자료구조
  • 리스트와 튜플의 기본 사용법 및 주요 메서드
  • 리스트와 튜플을 활용한 실용적인 예제

1️⃣ 리스트(List) 기초

리스트는 Python에서 여러 개의 값을 저장할 수 있는 자료구조이며, 변경이 가능(mutable)합니다.
리스트는 [ ] 대괄호를 사용하여 생성합니다.

# 리스트 선언
fruits = ["apple", "banana", "cherry"]

# 리스트 요소 접근 (인덱스 사용)
print(fruits[0])  # apple
print(fruits[-1]) # cherry (뒤에서 첫 번째 요소)

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

 

📌 리스트 주요 특징

  • 순서(인덱스) 보장
  • 요소 추가 및 삭제 가능
  • 데이터 타입 혼합 가능 ([1, "hello", True] 가능)

2️⃣ 리스트 주요 메서드

  

메서드 설명 예제
.append(x) 리스트 끝에 요소 추가 lst.append(10)
.insert(i, x) 특정 위치(i)에 요소 추가 lst.insert(1, "hello")
.remove(x) 특정 값을 삭제 lst.remove(3)
.pop(i) 특정 인덱스의 요소 제거 (기본: 마지막) lst.pop(2)
.index(x) 특정 요소의 인덱스 반환 lst.index(5)
.count(x) 특정 요소의 개수 반환 lst.count(2)
.sort() 오름차순 정렬 lst.sort()
.reverse() 리스트 뒤집기 lst.reverse()
numbers = [3, 1, 4, 1, 5, 9]
numbers.append(2)  # 리스트 끝에 추가
numbers.remove(1)  # 첫 번째 1 제거
numbers.sort()  # 정렬
print(numbers)  # [2, 3, 4, 5, 9]

3️⃣ 튜플(Tuple) 기초

튜플은 리스트와 비슷하지만, 변경할 수 없는(immutable) 자료구조입니다.
튜플은 ( ) 소괄호를 사용하여 생성합니다.

# 튜플 선언
fruits = ("apple", "banana", "cherry")

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

 

📌 튜플 주요 특징

  • 순서(인덱스) 보장
  • 변경 불가능(immutable) → 새로운 값을 할당할 수 없음
  • 데이터 타입 혼합 가능 ((1, "hello", True))
# 튜플 요소 변경 (에러 발생)
fruits = ("apple", "banana", "cherry")
# fruits[1] = "blueberry"  # TypeError: 'tuple' object does not support item assignment

4️⃣ 리스트 vs 튜플 비교

  

특징 리스트(List) 튜플(Tuple)
기호 [ ] ( )
순서 유지 O O
값 변경 가능 여부 O (mutable) X (immutable)
요소 추가/삭제 가능 불가능
속도 느림 빠름

📌 튜플은 변경할 필요가 없는 데이터를 저장할 때 사용하면 더 효율적입니다.
(예: 고정된 좌표 값 (x, y), 설정 값 ("ON", "OFF") 등)


📌 실전 문제: 리스트와 튜플 연습하기


문제 1: 리스트 값 변경하기

📌 다음 리스트에서 "banana"를 "grape"로 변경하고 출력하세요.

fruits = ["apple", "banana", "cherry"]
# 🔽 여기에 코드 작성
fruits[1] = "grape"
print(fruits)  # ['apple', 'grape', 'cherry']

문제 2: 리스트에 요소 추가하고 삭제하기

📌 아래 리스트에 "mango"를 추가하고 "apple"을 삭제하세요.

fruits = ["apple", "banana", "cherry"]
# 🔽 여기에 코드 작성
fruits.append("mango")  # 추가
fruits.remove("apple")  # 삭제
print(fruits)  # ['banana', 'cherry', 'mango']

문제 3: 튜플을 리스트로 변환하고 변경 후 다시 튜플로 변환하기

📌 튜플을 리스트로 변환한 후 값을 변경하고 다시 튜플로 변환하세요.

fruits = ("apple", "banana", "cherry")
# 🔽 여기에 코드 작성
fruits_list = list(fruits)  # 튜플 → 리스트 변환
fruits_list[1] = "grape"  # 값 변경
fruits = tuple(fruits_list)  # 리스트 → 튜플 변환
print(fruits)  # ('apple', 'grape', 'cherry')

 

728x90