목록으로

프로그래밍 · Python

Python 입문 시리즈 #9: 리스트로 여러 데이터를 한 번에 관리하기

BeanCon
Python 입문자가 리스트와 인덱스를 학습하는 과정을 표현한 대표 이미지

Python 입문 시리즈 #9편입니다. 리스트의 개념과 생성 방법, 인덱스와 음수 인덱스, len(), 값 변경, append와 insert, remove와 pop, sort 정렬, 반복문 활용, 합계와 평균, 슬라이싱, 학생 성적 관리와 장바구니 예제를 정리했습니다.

1. 리스트 List란 무엇인가?

지금까지 변수, 데이터 타입, 입력과 출력, 조건문, 반복문, 함수까지 학습했습니다. 이제 여러 개의 데이터를 한 번에 관리하는 리스트를 배워볼 차례입니다.

학생 1명의 점수를 저장하는 경우는 간단합니다.

score = 90

하지만 학생이 100명이라면 변수를 100개 만드는 방식은 현실적이지 않습니다.

score1 = 90
score2 = 85
score3 = 78
...
score100 = 95

Python에서는 여러 개의 데이터를 하나로 관리할 수 있는 리스트 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))

결과입니다.

3

5. 리스트 값 변경하기

리스트의 데이터는 수정할 수 있습니다.

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.0

10. 리스트 슬라이싱 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 혼동

append는 맨 뒤 추가, insert는 원하는 위치 추가입니다.

리스트와 문자열 혼동

문자열과 리스트는 전혀 다른 자료형입니다.

인덱스 범위 초과

fruits = ["사과", "바나나"]
print(fruits[5])

결과입니다.

IndexError

append와 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, 데이터베이스까지 훨씬 쉽게 이해할 수 있습니다.

Python 입문 연재 10 예고
  • 딕셔너리 Dictionary 이해하기
  • 이름표를 붙여 데이터를 관리하는 방법
  • key-value 구조로 데이터 저장하기

댓글

0

댓글을 불러오는 중입니다.