1. 리스트(List)란?
리스트는 파이썬에서 가장 많이 사용되는 자료 구조로, 여러 데이터를 순서 있게 저장할 수 있는 구조다. 대괄호([])로 만들며, 숫자 · 문자열 · 불린 값 등 서로 다른 자료형을 하나의 리스트에 넣을 수 있다.
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "python", True, 3.14]
- 순서 유지 : 인덱스를 통해 값에 접근 가능
- 중복 허용 : 같은 값을 여러 번 저장 가능
- 가변성(Mutable) : 생성 후에도 값 수정 가능
2. 인덱싱과 슬라이싱
2.1 인덱싱 (Indexing)
리스트 안의 값은 0번부터 시작하는 인덱스 번호로 접근한다.
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[1]) # banana
print(fruits[-1]) # cherry (뒤에서 첫 번째 값)
fruits[0]→ 첫 번째 값fruits[-1]→ 마지막 값
2.2 슬라이싱 (Slicing)
인덱스 범위를 지정해 여러 값을 한 번에 꺼낼 수 있다.
nums = [10, 20, 30, 40, 50]
print(nums[1:4]) # [20, 30, 40]
print(nums[:3]) # [10, 20, 30]
print(nums[2:]) # [30, 40, 50]
print(nums[::2]) # [10, 30, 50]
[시작:끝]→ 시작 이상, 끝 미만[::간격]→ 일정 간격으로 추출- 슬라이싱은 리스트 복사에도 활용됨
3. 리스트 수정
리스트는 생성 이후에도 값을 추가 · 변경 · 삭제할 수 있다.
3.1 값 변경
fruits = ["apple", "banana", "cherry"]
fruits[1] = "grape"
print(fruits) # ['apple', 'grape', 'cherry']
- 특정 인덱스의 값을 새 값으로 바꿀 수 있다.
3.2 값 추가
nums = [1, 2, 3]
nums.append(4) # 맨 뒤에 추가
nums.insert(1, 10) # 인덱스 1 위치에 삽입
print(nums) # [1, 10, 2, 3, 4]
append()→ 맨 뒤에 요소 추가insert(위치, 값)→ 특정 위치에 값 삽입
3.3 값 삭제
nums = [1, 2, 3, 4]
del nums[1] # 인덱스 1 삭제
nums.remove(3) # 값 3 삭제
popped = nums.pop() # 맨 뒤 값 꺼내기
print(nums) # [1]
print(popped) # 4
del→ 인덱스로 삭제remove()→ 값으로 삭제pop()→ 꺼내면서 삭제
4. 주요 메서드
리스트에는 자주 쓰이는 편리한 메서드가 많다.
nums = [5, 2, 8, 1]
nums.sort() # 오름차순 정렬
nums.reverse() # 순서 뒤집기
print(nums) # [8, 5, 2, 1]
print(nums.index(5)) # 값 5의 위치 → 1
print(nums.count(2)) # 값 2의 개수 → 1
append(x): 맨 뒤에 x 추가insert(i, x): i번째 위치에 x 삽입remove(x): 값 x 삭제pop([i]): i번째 값 꺼내기 (생략 시 맨 뒤)sort(): 오름차순 정렬 (reverse=True로 내림차순 가능)reverse(): 순서 뒤집기index(x): 값 x의 위치(인덱스) 반환count(x): 값 x의 개수 반환
5. 리스트와 반복문
리스트는 반복문과 함께 쓰면 강력하다.
fruits = ["apple", "banana", "cherry"]
for f in fruits:
print(f
- 리스트 안의 값을 하나씩 꺼내 사용
for i in range(len(fruits)):
print(i, fruits[i])
- 인덱스와 값을 동시에 활용 가능
6. 중첩 리스트
리스트 안에 또 다른 리스트를 넣어 2차원 구조처럼 사용할 수 있다.
matrix = [[1, 2], [3, 4], [5, 6]]
print(matrix[0]) # [1, 2]
print(matrix[1][1]) # 4
matrix[row][col]형식으로 접근- 표 형태의 데이터, 행렬 계산 등에 활용