List의 아이템들에 접근할 때 Slicing을 이용하는 방법이 있습니다.
슬라이싱에서 가져올 리스트의 범위를 지정하면, 해당하는 아이템들을 새로운 리스트로 만들어 리턴해줍니다.
예를 들어, 다음 코드는 리스트의 index 0에서 index 2까지의 아이템을 가져오는 코드입니다.
cities = ['Seoul', 'Tokyo', 'Beijing', 'Washington', 'Paris']
x = cities[0:3]
print(x)
Output:
['Seoul', 'Tokyo', 'Beijing']
슬라이싱은 아이템을 가져와 새로운 리스트를 만들 때 복사하기 때문에 기존 리스트가 변경되지 않습니다.
1. List slicing Syntax
Syntax는 다음과 같습니다.
Slicing[start:end:step]
각각의 항목은 양수나 음수 모두 설정 가능합니다. 의미는 다음과 같습니다.
- start : 슬라이싱을 시작할 Index를 의미합니다.
- end : 슬라이싱이 종료될 Index를 의미합니다. 이 Index의 아이템은 슬라이싱 리스트에 포함되지 않습니다.
- step : index의 간격을 설정합니다. 기본값은 1입니다.
2. 특정 범위의 아이템 가져오기
[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']
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']
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']
5. 리스트 슬라이싱으로 아이템 값 변경
다음과 같이 리스트 슬라이싱으로 범위를 지정하고, 새로운 리스트를 할당하면 원본 리스트의 데이터가 변경됩니다.
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']
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)