-
반응형
파이썬에서 리스트의 요소를 특정 부분만 추출하기 원할 때 사용합니다.
문자열의 슬라이싱과 동일합니다.
문법은 리스트변수[시작인덱스:종료인덱스:step] 입니다.
종료는 포함하지 않습니다. 인덱스는 0 부터 시작입니다.
변수[num1:] num1 이상 부터 ~
변수[:num2] ~ num2 미만까지
변수[num1:num2} num1 이상 ~ num2 미만
변수[::-1] 은 거꾸로 나열합니다.
Step은 step 개수 만큼 띄고 입니다.
예제를 통해 보면 이해가 더 빠를 겁니다.
>>> x = [0,1,2,3,4,5,6,7,8,9]
## 0 ~ 4 인 요소 입니다.
>>> x[:5]
[0, 1, 2, 3, 4]
## 4 요소 인덱스 부터 입니다.
>>> x[4:]
[4, 5, 6, 7, 8, 9]
## 인덱스 4 부터 6 까지 입니다.
>>> x[4:7]
[4, 5, 6]
## 거꾸로 나열합니다.
>>> x[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
## 인덱스 1 부터 8 까지 중 3개씩 건너서 출력합니다.
>>> x[1:9:3]
[1, 4, 7]
## 인덱스 1 부터 8 까지 중 2개씩 건너서 출력합니다.
>>> x[1:9:2]
[1, 3, 5, 7]
## 거꾸로 나열해서 인덱스 7 부터 4 까지 입니다. 거꾸로 이므로 종료 인덱스가 하나 더 작은 것은 인덱스가 4인 것입니다.
>>> x[7:3:-1]
[7, 6, 5, 4]
## 거꾸로 나열해서 인덱스 9 부터 끝까지 중 2 개씩 건너서 출력합니다.
>>> x[9::-2]
[9, 7, 5, 3, 1]
>>>리스트의 인덱스가 -1 값이면 맨 끝 요소값을 나타낸다고 이전 포스팅에서 설명하였습니다.
슬라이싱 에서도 인덱스를 음수 값으로 표현할 수 있습니다.
>>> x = [0,1,2,3,4,5,6,7,8,9]
## 인덱스 -1은 맨 끝자리 이므로 인덱스 9 의 값과 동일합니다.
>>> x[-1]
9
## 인덱스 3 에서 맨끝자리 9 미만 이므로 8 까지 추출합니다.
>>> x[3:-1]
[3, 4, 5, 6, 7, 8]
## 인덱스 3 에서 맨 끝자리에서 2번째인 인덱스 8 미만 이므로 7 까지 추출합니다.
>>> x[3:-2]
[3, 4, 5, 6, 7]
## 맨 끝자리에서 2번째인 인덱스 8 에서 인덱스 3 이므로 값이 없습니다.
>>> x[-2:3]
[]
## 거꾸로 맨 끝자리에서 2번째인 인덱스 8 에서 인덱스 3 이 거꾸로 미만이므로 4 까지의 값을 추출합니다.
>>> x[-2:3:-1]
[8, 7, 6, 5, 4]
>>>리스트는 리스트를 포함 할 수 있다고 하였습니다.
이 중첩된 리스트 접근 방식도 이전 포스팅에 있습니다.
그럼 슬라이싱은 어떻게 될까요? 동일한 방법입니다.
예제를 통해 알아봅니다.
아래와 같이 중첩된 리스트를 선언해 봅니다.
각 요소를 접근하기 위한 인덱스를 표현 하였습니다.
>>> x = [1, 3, 5, [ 2, 4, 6], 7, 9, [8,10,12, 14]]
>>> x[3]
[2, 4, 6]
## 중첩 리스트의 4의 값을 추출합니다.
>>> x[3][1]
4
## 중첩 리스트의 12의 값을 추출합니다.
>>> x[6][2]
12
>>> x[2:6]
[5, [2, 4, 6], 7, 9]
## 중첩 리스트 슬라이싱 방법 입니다. 2차 리스트를 같은 방법으로 사용합니다.
>>> x[3][1:2]
[4]
>>> x[6][1:3]
[10, 12]
## 중첩 리스트 중 거꾸로 나열해 봅니다.
>>> x[6][::-1]
[14, 12, 10, 8]
>>>이상으로 리스트 나누기, 슬라이싱에 대해 포스팅 하였습니다.
다음 포스팅은 리스트에 관련된 메소드 들과 연산하는 방법에 대해 포스팅 예정 입니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 리스트 함수 요소 수정 및 여러개 삭제하는 방법 (0) 2020.06.14 파이썬 리스트 요소 추가 및 합치기 (0) 2020.06.13 파이썬 다양한 메소드(함수)로 문자열 치환 및 삽입하기 (0) 2020.06.11 파이썬 다양한 메소드(함수)로 문자열 판별 확인하기 (0) 2020.06.10 파이썬 다양한 메소드(함수)로 문자열 포맷팅 (0) 2020.06.09