반응형
파이썬의 리스트 슬라이싱(Slicing)은 리스트의 부분집합을 추출하는 강력한 방법입니다.
슬라이싱을 사용하면 리스트의 특정 범위에 있는 요소들을 쉽게 가져올 수 있습니다.
슬라이싱 구문은 다음과 같습니다:
list[start:stop:step]
여기서:
start
는 슬라이싱이 시작되는 인덱스입니다. 생략하면 처음부터 시작합니다.stop
은 슬라이싱이 종료되는 인덱스(포함되지 않음)입니다. 생략하면 끝까지 포함됩니다.step
은 요소를 선택하는 간격입니다. 생략하면 기본값은 1입니다.
1. 슬라이싱 예제
1. 기본 슬라이싱
리스트의 일부분을 슬라이싱하여 추출할 수 있습니다.
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 인덱스 2부터 5까지 (5는 포함되지 않음)
print(numbers[2:5]) # [2, 3, 4]
# 인덱스 0부터 4까지
print(numbers[:5]) # [0, 1, 2, 3, 4]
# 인덱스 5부터 끝까지
print(numbers[5:]) # [5, 6, 7, 8, 9]
# 전체 리스트 복사
print(numbers[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. 음수 인덱스를 사용한 슬라이싱
음수 인덱스를 사용하여 리스트의 끝에서부터 슬라이싱할 수 있습니다.
# 인덱스 -5부터 끝까지
print(numbers[-5:]) # [5, 6, 7, 8, 9]
# 처음부터 인덱스 -3까지 (포함되지 않음)
print(numbers[:-3]) # [0, 1, 2, 3, 4, 5, 6]
3. 스텝을 사용한 슬라이싱
스텝을 지정하여 요소를 건너뛰며 슬라이싱할 수 있습니다.
# 인덱스 1부터 8까지 2씩 건너뛰기
print(numbers[1:8:2]) # [1, 3, 5, 7]
# 모든 요소를 2씩 건너뛰기
print(numbers[::2]) # [0, 2, 4, 6, 8]
# 역순으로 슬라이싱
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
4. 슬라이싱을 사용한 리스트 수정
슬라이싱을 사용하여 리스트의 부분을 수정할 수도 있습니다.
numbers[2:5] = [20, 30, 40]
print(numbers) # [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]
# 인덱스 1부터 4까지 삭제
numbers[1:4] = []
print(numbers) # [0, 40, 5, 6, 7, 8, 9]
2. 슬라이싱의 유용한 기능
- 부분 리스트 추출: 리스트의 특정 부분을 쉽게 추출할 수 있습니다.
- 리스트 복사:
numbers[:]
와 같이 슬라이싱을 사용하여 리스트의 복사본을 만들 수 있습니다. - 리스트 역순:
numbers[::-1]
을 사용하여 리스트를 역순으로 뒤집을 수 있습니다. - 리스트 수정: 슬라이싱을 사용하여 리스트의 특정 부분을 수정하거나 삭제할 수 있습니다.
3. 예제 코드
다음은 위의 모든 기능을 하나의 코드로 묶은 예제입니다.
# 리스트 생성
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 기본 슬라이싱
print(numbers[2:5]) # [2, 3, 4]
print(numbers[:5]) # [0, 1, 2, 3, 4]
print(numbers[5:]) # [5, 6, 7, 8, 9]
print(numbers[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 음수 인덱스를 사용한 슬라이싱
print(numbers[-5:]) # [5, 6, 7, 8, 9]
print(numbers[:-3]) # [0, 1, 2, 3, 4, 5, 6]
# 스텝을 사용한 슬라이싱
print(numbers[1:8:2]) # [1, 3, 5, 7]
print(numbers[::2]) # [0, 2, 4, 6, 8]
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 슬라이싱을 사용한 리스트 수정
numbers[2:5] = [20, 30, 40]
print(numbers) # [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]
numbers[1:4] = []
print(numbers) # [0, 40, 5, 6, 7, 8, 9]
이 예제들을 통해 파이썬 리스트의 슬라이싱을 효과적으로 사용할 수 있습니다.
슬라이싱은 리스트를 다루는 데 매우 유용한 도구로, 다양한 데이터 조작 작업을 간단하게 수행할 수 있게 해줍니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 리스트 (List) 수정하기 (0) | 2024.07.04 |
---|---|
[ Python ] 리스트에서 slicing으로 데이터 대입하기 (0) | 2024.07.04 |
[ Python ] 양수/음수 인덱스, enumerate 사용하기 (0) | 2024.07.04 |
[ Python ] 리스트 복사하기 (얕은/깊은 복사) (0) | 2024.07.04 |
[ Python ] 리스트 생성하고 사용하기 (0) | 2024.07.03 |