Python에서 목록을 분할하는 방법(인덱스, 단계 및 반전)
강력한 대괄호 구문을 사용하여 Python에서 목록을 분할하는 방법을 알아보세요. 마스터 시작, 중지 및 단계 인수, 음수 인덱싱 및 반전 목록.
개요
슬라이싱은 Python의 가장 직관적이고 강력한 기능 중 하나이며, 깨끗하고 간결한 구문으로 목록, 튜플 또는 문자열의 하위 집합을 추출할 수 있게 해줍니다. 목록에서 특정 요소를 복사하기 위해 장황한 루프를 작성하는 대신 Python의 슬라이스 표기법을 사용하면 대괄호 안에 인덱스 범위를 지정할 수 있습니다.
리스트 슬라이싱의 전체 구문은 `my_list[start:stop:step]`입니다. 'start' 인덱스는 포함되고, 'stop' 인덱스는 제외되며, 'step'은 요소 간의 증분을 정의합니다(기본값은 1). `start`를 생략하면 Python은 기본적으로 목록의 시작 부분으로 설정됩니다. `stop`을 생략하면 Python은 기본적으로 목록의 끝으로 설정됩니다. 이는 컬렉션의 일부 추출을 매우 효과적으로 만듭니다.
슬라이싱은 음수 인덱스를 지원하므로 매우 다재다능합니다. 음수 시작 또는 중지 인덱스는 목록의 끝에서부터 뒤로 계산됩니다('-1'은 마지막 항목을 나타냄). `my_list[::-1]`과 같은 음수 단계 값을 설정하면 목록의 역방향 복사본을 빠르게 검색할 수 있습니다. 깨끗한 데이터 추출을 위해서는 슬라이스 범위를 이해하는 것이 필수적입니다.
코드 및 실행 출력
이 스크립트는 다양한 시작, 중지, 단계 범위, 음수 인덱싱 및 목록 반전을 사용하는 목록 분할을 보여줍니다.
numbers = [0, 10, 20, 30, 40, 50, 60, 70, 80]
# 1. Basic slicing: elements from index 2 up to (but excluding) 6
subset = numbers[2:6]
print("Subset [2:6]:", subset)
# 2. Omitting indices: start to index 4, and index 5 to end
first_five = numbers[:5]
last_four = numbers[5:]
print("First five [:5]:", first_five)
print("Last four [5:]:", last_four)
# 3. Using a step parameter: get every second element
every_second = numbers[::2]
print("Every second [::2]:", every_second)
# 4. Negative indexing: get the last three elements
last_three = numbers[-3:]
print("Last three [-3:]:", last_three)
# 5. Reverse the list using step=-1
reversed_numbers = numbers[::-1]
print("Reversed list [::-1]:", reversed_numbers)Subset [2:6]: [20, 30, 40, 50]
First five [:5]: [0, 10, 20, 30, 40]
Last four [5:]: [50, 60, 70, 80]
Every second [::2]: [0, 20, 40, 60, 80]
Last three [-3:]: [60, 70, 80]
Reversed list [::-1]: [80, 70, 60, 50, 40, 30, 20, 10, 0]단계별 구현
- 인덱스 시작부터 중지까지(포함하지 않음) 요소를 추출하려면 list[start:stop]을 사용하세요.
- 목록의 경계에서 분할하려면 시작 또는 중지 인덱스(예: list[:4] 또는 list[4:])를 생략합니다.
- 일정한 간격으로 요소를 건너뛰려면 대괄호 list[::step] 안에 세 번째 인수를 전달합니다.
- 컬렉션의 끝에서부터 역방향으로 요소의 개수를 계산하려면 음수 인덱스를 사용하세요.
자주 묻는 질문
슬라이싱으로 인해 원래 목록이 수정되나요?
아니요, 목록 분할은 요청된 범위의 얕은 복사본을 반환하고 원본 목록은 완전히 변경되지 않은 상태로 유지합니다.
슬라이스 인덱스가 범위를 벗어나면 어떻게 되나요?
IndexError를 발생시키는 단일 인덱스에 액세스하는 것과는 달리, 슬라이싱은 관대하며 단순히 목록 경계에서 범위를 제한하고 범위에 요소가 없으면 빈 목록을 반환합니다.
관련 주제
Python에서 목록을 복사하는 방법을 알아보세요. 목록 분할, copy() 메서드, 목록 생성자를 살펴보고 얕은 복사본과 깊은 복사본의 차이점을 마스터하세요.
Python에서 문자열을 뒤집는 방법슬라이싱, reversed() 함수, 루프 연결을 사용하여 Python에서 문자열을 반전하는 방법을 시각적 코드 예제와 함께 알아보세요.
Python에서 목록의 길이를 찾는 방법len() 함수를 사용하여 Python에서 목록의 길이를 찾는 방법을 알아보세요. O(1) 시간 복잡도와 확인 횟수를 이해합니다.
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python 변수 및 데이터 유형 설명
Python 변수와 핵심 데이터 유형(문자열, 정수, 부동 소수점, 부울)을 이해합니다. Python의 메모리 할당에 대한 완전한 초보자 가이드입니다.
Python 목록 메서드 치트 시트
Python 목록 작업에 대한 빠른 참조 가이드입니다. 요소 추가, 삽입, 제거, 정렬 및 분할을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.