개발/Python

[초급반] Step 5. 리스트(List)와 튜플(Tuple): 순서가 있는 데이터 다루기

ophelisis 2025. 12. 16. 17:43
반응형

안녕하세요! 파이썬 학습 다섯 번째 시간입니다. 지난 시간까지 우리는 기본적인 문법과 프로그램의 흐름(조건문, 반복문)을 제어하는 방법을 배웠습니다.

이제는 데이터를 효율적으로 모아두고 관리하는 방법을 배워보겠습니다. 파이썬에서 가장 기본이 되는 순서가 있는 자료 구조인 **리스트(List)**와 **튜플(Tuple)**입니다.


1. 리스트 (List): 유연하고 강력한 '배열'

리스트는 파이썬에서 가장 많이 사용되는 자료 구조이며, **대괄호 []**를 사용하여 만듭니다. 리스트의 가장 큰 특징은 **가변적(Mutable)**이라는 점입니다. 즉, 생성 후에도 언제든지 내용을 추가, 삭제, 수정할 수 있습니다.

1-1. 리스트 생성 및 접근

리스트는 서로 다른 데이터 타입(숫자, 문자열, 심지어 다른 리스트)을 한데 모아 담을 수 있습니다.

Python
 
# 리스트 생성
mixed_list = ["apple", 10, True, [1, 2]]

# 인덱싱 (Indexing): 0부터 시작
print(mixed_list[0]) # 결과: apple

# 슬라이싱 (Slicing): 문자열과 동일하게 작동
print(mixed_list[1:3]) # 결과: [10, True]

1-2. 리스트의 주요 메서드 (데이터 조작)

리스트의 가변성 덕분에 다양한 메서드를 활용하여 내용을 쉽게 바꿀 수 있습니다.

메서드 기능 예시 결과
append() 맨 뒤에 요소 추가 my_list.append(4) [1, 2, 3, 4]
insert() 특정 위치에 요소 삽입 my_list.insert(1, 1.5) [1, 1.5, 2, 3]
pop() 맨 뒤 요소 삭제 후 반환 my_list.pop() [1, 2] 반환된 값: 3
remove() 을 지정하여 삭제 (가장 먼저 나오는 값) my_list.remove(2) [1, 3]
sort() 리스트를 정렬 my_list.sort(reverse=True) 내림차순 정렬
Python
 
my_list = [1, 2, 3]

# 수정 (인덱스 1의 값 변경)
my_list[1] = 20
print(my_list) # 결과: [1, 20, 3]

1-3. for 반복문과 리스트

for 반복문은 리스트의 모든 요소를 순회하는 데 가장 이상적입니다.

Python
 
names = ["Alice", "Bob", "Charlie"]

for name in names:
    print(f"{name}님 안녕하세요.")

2. 튜플 (Tuple): 안전하고 변경 불가능한 '데이터 묶음'

튜플은 리스트와 매우 유사하지만, **소괄호 ()**를 사용하여 만들고 가장 중요한 특징은 **불변적(Immutable)**이라는 점입니다.

2-1. 튜플의 특징: 데이터 보호

튜플은 한 번 생성되면 요소의 내용을 수정, 추가, 삭제할 수 없습니다. 이 특성 때문에 절대로 바뀌어서는 안 되는 데이터 (예: 좌표값, 설정값, 날짜)를 저장할 때 사용합니다.

Python
 
# 튜플 생성
coordinates = (10, 20) 

# 인덱싱과 슬라이싱은 리스트와 동일하게 작동
print(coordinates[0]) # 결과: 10

# 튜플은 수정할 수 없습니다. -> 오류 발생!
# coordinates[0] = 5 

2-2. 튜플의 활용: 다중 값 반환

함수에서 여러 값을 한 번에 반환할 때, 튜플 형태로 반환하는 경우가 많습니다.

Python
 
# 튜플을 이용한 다중 변수 할당이 가능합니다.
(x, y) = (100, 200) 
print(x) # 결과: 100

3. 리스트 vs. 튜플 비교

구분 리스트 (List) 튜플 (Tuple)
표기법 대괄호 [] 소괄호 ()
가변성 가변적 (Mutable): 수정 가능 불변적 (Immutable): 수정 불가능
용도 항목 추가/삭제가 잦은 컬렉션, 동적 데이터 변경되지 않아야 하는 고정 데이터 (좌표, DB 기록 등)
성능 튜플에 비해 약간 느림 리스트보다 빠름 (크기가 고정되어 메모리 효율 좋음)
반응형