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
'Data Engineering > python' 카테고리의 다른 글
EP06 | Python 클래스와 객체지향 프로그래밍 (OOP) (0) | 2025.03.19 |
---|---|
EP05 | Python 함수와 스코프 (Global, Local, Lambda 함수) (0) | 2025.03.19 |
EP04 | Python 자료구조 #2 | 딕셔너리와 집합 (0) | 2025.03.19 |
EP02 | Python 제어문 (조건문, 반복문) (0) | 2025.03.19 |
EP01 | Python 기본 문법 정리 (변수, 자료형, 연산자) (0) | 2025.03.19 |