목차
1. 리스트 List란 무엇인가?
지금까지 변수, 데이터 타입, 입력과 출력, 조건문, 반복문, 함수까지 학습했습니다. 이제 여러 개의 데이터를 한 번에 관리하는 리스트를 배워볼 차례입니다.
학생 1명의 점수를 저장하는 경우는 간단합니다.
score = 90하지만 학생이 100명이라면 변수를 100개 만드는 방식은 현실적이지 않습니다.
score1 = 90
score2 = 85
score3 = 78
...
score100 = 95Python에서는 여러 개의 데이터를 하나로 관리할 수 있는 리스트 List를 제공합니다. 리스트는 Python에서 가장 많이 사용하는 자료구조 중 하나이며, 실무에서도 거의 매일 사용됩니다.
리스트는 여러 개의 데이터를 하나의 변수에 저장하는 자료형입니다.
scores = [90, 85, 78, 92, 88]하나의 변수에 5개의 점수가 저장되었습니다. 리스트는 데이터를 순서대로 관리하며, 각각의 위치에는 번호가 부여됩니다. 이 번호를 인덱스 Index라고 합니다.
2. 리스트 만들기
리스트의 기본 문법입니다.
변수명 = [값1, 값2, 값3]문자열 리스트 예제입니다.
fruits = ["사과", "바나나", "포도"]숫자도 저장할 수 있습니다.
numbers = [10, 20, 30, 40]문자열과 숫자, Boolean을 함께 저장할 수도 있습니다.
data = ["김철수", 25, True]출력합니다.
print(data)결과입니다.
['김철수', 25, True]| 리스트 예시 | 설명 |
|---|---|
| ["사과", "바나나", "포도"] | 문자열 여러 개를 저장합니다. |
| [10, 20, 30, 40] | 숫자 여러 개를 저장합니다. |
| ["김철수", 25, True] | 서로 다른 타입도 함께 저장할 수 있습니다. |
3. 인덱스 Index 이해하기
리스트는 0부터 번호가 시작됩니다.
fruits = ["사과", "바나나", "포도"]구조는 다음과 같습니다.
인덱스 0 1 2
값 사과 바나나 포도첫 번째 데이터를 꺼냅니다.
print(fruits[0])결과입니다.
사과두 번째 데이터입니다.
print(fruits[1])결과입니다.
바나나세 번째 데이터입니다.
print(fruits[2])결과입니다.
포도4. 음수 인덱스와 길이 확인
음수 인덱스 사용하기
Python은 뒤에서부터 접근할 수도 있습니다.
fruits = ["사과", "바나나", "포도"]print(fruits[-1])결과입니다.
포도print(fruits[-2])결과입니다.
바나나리스트 길이 확인하기
데이터 개수를 확인할 때는 len() 함수를 사용합니다.
fruits = ["사과", "바나나", "포도"]print(len(fruits))결과입니다.
35. 리스트 값 변경하기
리스트의 데이터는 수정할 수 있습니다.
fruits = ["사과", "바나나", "포도"]fruits[1] = "딸기"print(fruits)결과입니다.
['사과', '딸기', '포도']6. 리스트에 데이터 추가하기
| 메서드 | 역할 | 예시 |
|---|---|---|
| append() | 맨 뒤에 추가합니다. | fruits.append("포도") |
| insert() | 원하는 위치에 추가합니다. | fruits.insert(1, "딸기") |
append()
맨 뒤에 데이터를 추가합니다.
fruits = ["사과", "바나나"]fruits.append("포도")print(fruits)결과입니다.
['사과', '바나나', '포도']insert()
원하는 위치에 데이터를 추가합니다.
fruits.insert(1, "딸기")print(fruits)결과입니다.
['사과', '딸기', '바나나', '포도']7. 리스트 데이터 삭제하기
| 메서드 | 삭제 기준 | 예시 |
|---|---|---|
| remove() | 값으로 삭제합니다. | fruits.remove("바나나") |
| pop() | 인덱스로 삭제합니다. | fruits.pop(1) |
remove()
fruits = ["사과", "바나나", "포도"]fruits.remove("바나나")print(fruits)결과입니다.
['사과', '포도']pop()
fruits = ["사과", "바나나", "포도"]fruits.pop(1)print(fruits)결과입니다.
['사과', '포도']8. 리스트 정렬하기
숫자 리스트를 정렬할 수 있습니다.
numbers = [50, 20, 80, 10]numbers.sort()print(numbers)결과입니다.
[10, 20, 50, 80]내림차순 정렬입니다.
numbers.sort(reverse=True)print(numbers)결과입니다.
[80, 50, 20, 10]9. 리스트 반복문 사용하기
리스트와 반복문은 항상 함께 사용됩니다.
fruits = ["사과", "바나나", "포도"]for fruit in fruits:
print(fruit)결과입니다.
사과
바나나
포도실무에서 가장 많이 사용하는 형태입니다.
인덱스와 함께 반복하기
fruits = ["사과", "바나나", "포도"]for i in range(len(fruits)):
print(i, fruits[i])결과입니다.
0 사과
1 바나나
2 포도리스트에 숫자 저장 후 합계 구하기
scores = [90, 80, 70, 100]total = 0
for score in scores:
total += score
print(total)결과입니다.
340평균 구하기입니다.
average = total / len(scores)
print(average)결과입니다.
85.010. 리스트 슬라이싱 Slicing
리스트 일부만 가져올 수 있습니다.
numbers = [10, 20, 30, 40, 50]print(numbers[1:4])결과입니다.
[20, 30, 40]앞에서 3개를 가져옵니다.
print(numbers[:3])결과입니다.
[10, 20, 30]뒤에서 2개를 가져옵니다.
print(numbers[-2:])결과입니다.
[40, 50]11. 실전 예제
실전 예제 1: 학생 성적 관리
scores = [95, 88, 72, 100, 84]
total = sum(scores)
average = total / len(scores)
print("총점:", total)
print("평균:", average)결과입니다.
총점: 439
평균: 87.8실전 예제 2: 쇼핑몰 장바구니
cart = []상품을 추가합니다.
cart.append("노트북")
cart.append("마우스")
cart.append("키보드")출력합니다.
print(cart)결과입니다.
['노트북', '마우스', '키보드']상품을 제거합니다.
cart.remove("마우스")print(cart)결과입니다.
['노트북', '키보드']12. 초보자가 자주 하는 실수
존재하지 않는 위치를 접근하면 IndexError가 발생합니다.
append는 맨 뒤 추가, insert는 원하는 위치 추가입니다.
문자열과 리스트는 전혀 다른 자료형입니다.
인덱스 범위 초과
fruits = ["사과", "바나나"]print(fruits[5])결과입니다.
IndexErrorappend와 insert 혼동
fruits.append("포도")맨 뒤에 추가합니다.
fruits.insert(0, "포도")원하는 위치에 추가합니다.
리스트와 문자열 혼동
name = "Python"문자열입니다.
names = ["Python", "Java"]리스트입니다.
리스트 사용 전후 비교
변수 여러 개 사용입니다.
score1 = 90
score2 = 85
score3 = 95
score4 = 70
score5 = 88리스트 사용입니다.
scores = [90, 85, 95, 70, 88]훨씬 간결하며 반복문을 활용할 수 있습니다.
13. 정리와 다음 편 예고
오늘은 Python의 리스트 List에 대해 배웠습니다.
- 리스트는 여러 데이터를 저장하는 자료형입니다.
- 인덱스는 0부터 시작합니다.
- 음수 인덱스로 뒤에서 접근할 수 있습니다.
- append()로 데이터를 추가합니다.
- remove()와 pop()으로 데이터를 삭제합니다.
- sort()로 정렬합니다.
- for 문과 함께 자주 사용합니다.
- 슬라이싱으로 원하는 부분만 추출할 수 있습니다.
리스트는 Python 프로그래밍의 핵심 자료구조입니다. 실제 개발에서는 사용자 목록, 상품 목록, 로그 데이터, 검색 결과 등 거의 모든 곳에서 사용됩니다.
리스트를 충분히 연습하면 이후 배우게 될 튜플 Tuple, 딕셔너리 Dictionary, 데이터베이스까지 훨씬 쉽게 이해할 수 있습니다.
- 딕셔너리 Dictionary 이해하기
- 이름표를 붙여 데이터를 관리하는 방법
- key-value 구조로 데이터 저장하기
