Python을 배우다 보면 여러 개의 데이터를 한 번에 저장하고 관리해야 하는 경우가 많습니다. 예를 들어 학생들의 이름, 시험 점수, 상품 목록 등을 각각 하나의 변수에 저장하면 코드가 길어지고 관리도 어려워집니다. 이럴 때 사용하는 자료형이 바로 리스트(List)입니다.
리스트는 Python에서 가장 많이 사용하는 자료형 중 하나로, 데이터를 순서대로 저장하고 쉽게 추가, 수정, 삭제할 수 있습니다. 이번 글에서는 Python 리스트(List) 사용법과 주요 메서드를 예제와 함께 자세히 알아보겠습니다.
리스트(List)란?
리스트는 여러 개의 데이터를 하나의 변수에 저장할 수 있는 자료형입니다.
대괄호([])를 사용하여 생성하며, 각 데이터는 쉼표(,)로 구분합니다.
fruits = ["사과", "바나나", "포도"]
리스트를 출력해 보겠습니다.
print(fruits)
실행 결과
['사과', '바나나', '포도']
리스트에는 문자열뿐만 아니라 숫자, 실수, Boolean 등 다양한 자료형을 함께 저장할 수도 있습니다.
data = ["Python", 2026, 3.14, True]
리스트 요소 접근하기
리스트의 각 데이터는 인덱스(Index)를 이용해 접근합니다.
인덱스는 0부터 시작합니다.
languages = ["Python", "C", "C++", "Java"]
print(languages[0])
print(languages[2])
실행 결과
Python
C++
마지막 요소는 음수 인덱스로 접근할 수도 있습니다.
print(languages[-1])
결과
Java
리스트 값 변경하기
리스트는 생성 후에도 값을 자유롭게 변경할 수 있습니다.
languages = ["Python", "C", "C++"]
languages[1] = "Java"
print(languages)
실행 결과
['Python', 'Java', 'C++']
리스트에 데이터 추가하기
새로운 데이터를 추가할 때 가장 많이 사용하는 메서드는 append()입니다.
languages = ["Python", "Java"]
languages.append("C++")
print(languages)
실행 결과
['Python', 'Java', 'C++']
리스트의 마지막에 새로운 요소가 추가됩니다.
원하는 위치에 추가하기
특정 위치에 데이터를 삽입하려면 insert()를 사용합니다.
languages = ["Python", "C++"]
languages.insert(1, "Java")
print(languages)
결과
['Python', 'Java', 'C++']
리스트 데이터 삭제하기
마지막 요소를 삭제하려면 pop()을 사용합니다.
numbers = [10, 20, 30]
numbers.pop()
print(numbers)
결과
[10, 20]
특정 값을 삭제하려면 remove()를 사용합니다.
numbers = [10, 20, 30]
numbers.remove(20)
print(numbers)
결과
[10, 30]
리스트 길이 구하기
리스트에 저장된 데이터 개수는 len() 함수로 확인할 수 있습니다.
fruits = ["사과", "바나나", "포도"]
print(len(fruits))
결과
3
리스트 정렬하기
숫자나 문자열은 sort() 메서드로 오름차순 정렬할 수 있습니다.
numbers = [5, 2, 8, 1]
numbers.sort()
print(numbers)
결과
[1, 2, 5, 8]
내림차순으로 정렬하려면 reverse=True 옵션을 사용합니다.
numbers.sort(reverse=True)
print(numbers)
결과
[8, 5, 2, 1]
리스트 반복하기
리스트는 for 반복문과 함께 자주 사용됩니다.
languages = ["Python", "Java", "C++"]
for language in languages:
print(language)
실행 결과
Python
Java
C++
데이터를 하나씩 처리할 때 가장 많이 사용하는 방법입니다.
리스트 슬라이싱
슬라이싱(Slicing)을 사용하면 원하는 구간의 데이터를 가져올 수 있습니다.
numbers = [10, 20, 30, 40, 50]
print(numbers[1:4])
결과
[20, 30, 40]
시작 인덱스는 포함되고 종료 인덱스는 포함되지 않습니다.
자주 사용하는 리스트 메서드
| 메서드 | 설명 |
|---|---|
| append() | 마지막에 요소 추가 |
| insert() | 원하는 위치에 요소 삽입 |
| remove() | 특정 값 삭제 |
| pop() | 마지막 요소 삭제 및 반환 |
| sort() | 오름차순 정렬 |
| reverse() | 순서 뒤집기 |
| clear() | 모든 요소 삭제 |
| count() | 특정 값 개수 확인 |
| index() | 요소의 위치 반환 |
이 메서드들은 실무에서도 자주 사용되므로 익혀두면 도움이 됩니다.
초보자가 자주 하는 실수
1. 존재하지 않는 인덱스 접근
numbers = [10, 20, 30]
print(numbers[5])
위 코드는 IndexError가 발생합니다.
리스트 길이를 확인한 후 접근하는 습관을 들이는 것이 좋습니다.
2. remove()와 pop()의 차이
numbers.remove(20)
→ 값을 삭제
numbers.pop()
→ 마지막 위치의 요소를 삭제
두 메서드의 차이를 기억해 두면 실수를 줄일 수 있습니다.
실무 예제
사용자가 입력한 과일을 리스트에 추가하는 프로그램입니다.
fruits = []
fruit = input("과일 이름을 입력하세요: ")
fruits.append(fruit)
print("현재 목록:", fruits)
이처럼 리스트는 사용자 입력을 저장하거나 데이터를 관리하는 프로그램에서 매우 자주 활용됩니다.
마무리
이번 글에서는 Python 리스트(List) 사용법과 주요 메서드를 살펴보았습니다.
리스트는 여러 개의 데이터를 효율적으로 저장하고 관리할 수 있는 Python의 핵심 자료형입니다. append(), insert(), remove(), pop(), sort() 등 주요 메서드를 익혀두면 데이터 처리 능력이 크게 향상됩니다.
리스트는 이후 배우게 될 반복문, 함수, 파일 처리, 웹 크롤링, 데이터 분석에서도 매우 자주 사용됩니다. 충분히 연습해 두면 Python 실력을 한 단계 높이는 데 큰 도움이 될 것입니다.
다음 글에서는 Python 튜플(Tuple)과 리스트(List)의 차이점을 다양한 예제와 함께 자세히 알아보겠습니다.