🐍 파이썬 리스트(List) 기초 완벽 정리
파이썬에서 가장 기본적이면서 활용도가 높은 자료구조는 바로 리스트(List)다. 리스트는 여러 개의 데이터를 하나의 변수에 순서대로 담아 관리하는 바구니와 같다. 리스트의 생성부터 주요 활용법까지 핵심 내용을 정리한다.
1. 리스트의 생성
리스트는 대괄호 []를 사용하여 만든다. 내부의 요소들은 쉼표(,)로 구분하며, 숫자, 문자열, 불리언뿐만 아니라 리스트 안에 또 다른 리스트를 넣는 것도 가능하다.
# 다양한 형태의 리스트 생성
numbers = [1, 2, 3, 4, 5]
fruits = ["사과", "바나나", "포도"]
mixed = [100, "Python", True, [1, 2]]
empty = [] # 빈 리스트
2. 인덱싱(Indexing): 데이터 꺼내기
리스트의 각 요소는 고유한 번호를 가진다. 이를 인덱스라고 부른다. 파이썬은 숫자를 0부터 세기 시작한다는 점이 가장 중요하다.
| 리스트 요소 |
10 |
20 |
30 |
40 |
| 인덱스 |
0 |
1 |
2 |
3 |
| 역방향 인덱스 |
-4 |
-3 |
-2 |
-1 |
nums = [10, 20, 30, 40]
print(nums[0]) # 10 (첫 번째 요소)
print(nums[-1]) # 40 (마지막 요소)
3. 슬라이싱(Slicing): 범위로 잘라내기
슬라이싱을 이용하면 리스트의 일부분을 원하는 만큼 잘라낼 수 있다. 형식은 리스트[시작:끝:간격]이다. 이때 '끝' 인덱스는 결과에 포함되지 않는다는 점을 주의해야 한다.
numbers = [0, 10, 20, 30, 40, 50]
# 인덱스 1부터 3까지(4 이전까지) 가져온다
print(numbers[1:4]) # [10, 20, 30]
# 처음부터 3번 인덱스 앞까지 가져온다
print(numbers[:3]) # [0, 10, 20]
# 간격 설정 (2칸씩 건너뛰기)
print(numbers[::2]) # [0, 20, 40] (짝수 인덱스 추출)
print(numbers[1::2]) # [10, 30, 50] (홀수 인덱스 추출)
4. 요소 수정 및 추가
리스트는 생성된 후에도 자유롭게 내용을 바꿀 수 있는 '가변(Mutable)' 자료형이다.
a = [1, 2, 3]
# 특정 위치의 값 수정
a[1] = 20 # [1, 20, 3]
# 리스트 끝에 요소 추가
a.append(4) # [1, 20, 3, 4]
# 특정 위치에 요소 삽입
a.insert(1, 100) # 1번 인덱스에 100 삽입 -> [1, 100, 20, 3, 4]
5. 요소 삭제
데이터를 삭제하는 방법은 크게 세 가지다.
items = ["A", "B", "C", "D"]
# 1. 값으로 삭제
items.remove("B") # ["A", "C", "D"]
# 2. 인덱스로 삭제하고 값을 반환받기
val = items.pop(0) # "A"가 삭제되고 val에 저장됨 -> ["C", "D"]
# 3. del 키워드로 특정 인덱스 삭제
del items[1] # ["C"]
6. 리스트 관련 주요 함수
리스트를 다룰 때 자주 사용하는 내장 함수와 메서드는 다음과 같다.
nums = [5, 2, 8, 1, 9]
# 리스트의 길이(요소 개수) 구하기
print(len(nums)) # 5
# 오름차순 정렬
nums.sort() # [1, 2, 5, 8, 9]
# 순서 뒤집기
nums.reverse() # [9, 8, 5, 2, 1]
# 특정 값이 리스트 내에 있는지 확인 (결과는 True/False)
print(8 in nums) # True
7. 요약 및 주의사항
- 0번 인덱스: 첫 번째 데이터는 항상
0번 인덱스부터 시작한다.
- 슬라이싱 범위:
[start:stop]에서 stop 번호는 포함되지 않고 그 직전까지만 잘린다.
- 인덱스 초과: 리스트의 길이를 벗어난 인덱스를 참조하면
IndexError가 발생하므로 주의해야 한다.