List의 아이템들에 접근할 때 Slicing을 이용하는 방법이 있습니다.
슬라이싱에서 가져올 리스트의 범위를 지정하면, 해당하는 아이템들을 새로운 리스트로 만들어 리턴해줍니다.
예를 들어, 다음 코드는 리스트의 index 0에서 index 2까지의 아이템을 가져오는 코드입니다.
cities = ['Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris']
x = cities[0:3]
print(x)
Output:
['Seoul', 'Tokyo', 'Beijing']
슬라이싱은 아이템을 가져와 새로운 리스트를 만들 때 복사하기 때문에 기존 리스트가 변경되지 않습니다.
Syntax
Syntax는 다음과 같습니다.
Slicing[start:stop:step]
각각의 항목은 양수나 음수 모두 설정 가능합니다. 의미는 다음과 같습니다.
- start : 슬라이싱을 시작할 Index를 의미합니다.
- end : 슬라이싱이 종료될 Index를 의미합니다. 이 Index의 아이템은 슬라이싱 리스트에 포함되지 않습니다.
- step : index의 간격을 설정합니다. 기본값은 1입니다.
특정 범위의 아이템 가져오기
[start:end]
로 특정 범위의 아이템들을 가져올 수 있습니다. start는 포함되지만 end는 포함되지 않는 리스트를 리턴해 줍니다.
numbers = ['0', '1', '2', '3', '4']
x = numbers[0:3]
print(x)
Output:
['0', '1', '2']
start만 입력하면 리스트의 마지막까지 가져옵니다.
numbers = ['0', '1', '2', '3', '4']
x = numbers[2:]
print(x)
Output:
['2', '3', '4']
end만 입력하면 start는 기본적으로 0으로 설정됩니다.
numbers = ['0', '1', '2', '3', '4']
x = numbers[:2]
print(x)
Output:
['0', '1']
음수의 Index로 표현할 수도 있습니다.
numbers = ['0', '1', '2', '3', '4']
x = numbers[-3:-1]
print(x)
Output:
['2', '3']
Step
step이 양수이면, 오른쪽 방향으로 step 간격으로 아이템을 가져옵니다.
예를 들어, 다음은 step을 2로 설정한 예제입니다. 2개 간격으로 아이템을 가져왔습니다.
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
x = numbers[0:8:2]
print(x)
Output:
['0', '2', '4', '6']
step을 명시하지 않으면 기본값으로 1로 설정됩니다.
다음 예제는 start index가 end index 보다 크지만, step을 -2로 설정하여 반대 방향으로 아이템을 가져옵니다.
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
x = numbers[8:2:-2]
print(x)
Output:
['8', '6', '4']
순서 뒤집기
다음과 같이 step만 -1로 설정하면 아이템의 순서를 뒤집은 리스트를 만들 수 있습니다.
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
x = numbers[::-1]
print(x)
Output:
['8', '7', '6', '5', '4', '3', '2', '1', '0']
슬라이싱으로 아이템 값 변경
다음과 같이 슬라이싱으로 범위를 지정하고, 새로운 리스트를 할당하면 원본 리스트의 데이터가 변경됩니다.
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8']
numbers[1:3] = ['a', 'b']
print(numbers)
Output:
['0', 'a', 'b', '3', '4', '5', '6', '7', '8']
Recommended Posts:
- Python - dict 정렬 (Key, Value로 sorting)
- Python - String을 bytes로 변경하는 방법
- Python - bytes를 String으로 변환하는 방법
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 문자열에서 특정 단어 추출
- Python - float을 int로 변경하는 방법
- Python - 특정 문자열로 시작하는 문자열 찾기
- Python - dictionary의 중복 제거 방법
- Python - 리스트가 비어있는지 확인
- Python - 문자열 뒤집기, 문자열 거꾸로 출력
- Python - 현재 날짜, 시간 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트 크기(size) 구하기