[파이썬 기초]
리스트(list) 인덱싱과 슬라이싱 (1) 중첩 없는 경우
리스트에서 인덱싱을 하는 방법입니다. 중첩이 없는경우와 있는 경우로 나눠서 살펴볼 것이며, 이번 글은 중첩이 없는 경우입니다.
먼저 리스트를 하나 정의하겠습니다.
>>> L=[1,2,3,4,5]
>>> L
[1, 2, 3, 4, 5]
하나의 원소에 접근
리스트 L의 첫번째 원소에 접근해보겠습니다. 대괄호를 사용합니다.
>>> L[0]
1
구간을 이용하여 여러 원소에 접근
구간을 이용할 때는 콜론 : 을 사용합니다. 첫번째와 두번째 원소에 접근할 때는 어떻게 해야할까요? 첫번째 원소의 접근방법이 L[0]이었으니까, 두번째 원소까지의 접근은 아마 L[0:1]가 떠오르실 것입니다. 아쉽게도 결과는 아래와 같습니다. 첫번째 원소만 출력되었습니다. L[0]와 달리 리스트로 출력된다는 차이가 있습니다.
>>> L[0:1]
[1]
파이썬 인덱싱에서 번호는 원소에 배정되지 않습니다. 예를들어 1,2,3 이라는 원소가 있다면 번호의 위치는 아래와 같습니다. 괄호가 번호입니다.
(0) 1 (1) 2 (2)
첫번째와 두번째 원소에 접근하려면 번호로는 0:2 를 입력해주어야 합니다.
>>> L[0:2]
[1, 2]
처음부터 또는 마지막까지 접근
처음부터 특정 원소까지, 혹은 특정 원소부터 끝까지 접근하는 방법입니다.
첫번째 원소부터 3번째 원소까지 접근해봅시다. A[0:3] 으로 해도 되지만, 0 자리를 비워줘도 됩니다.
>>> L[:3]
[1, 2, 3]
이번에는 3번째 원소부터 마지막 원소까지 접근해봅시다. 3이 아니라 2를 입력해야 합니다. 위에서 설명했듯이 인덱싱 번호와 원소 번호는 다르다는 것을 기억합시다.
>>> L[2:]
[3, 4, 5]
불연속하게 접근 (불가)
1번째 원소와 3번째 원소와 같이 인접하지 않은 여러 원소에 접근하고 싶다면 아래와 같이 입력하면 될 것 같지만 작동하지 않습니다.
>>> L[0,3]
Traceback (most recent call last):
File "<ipython-input-593-3316ac2db240>", line 1, in <module>
L[0,3]
TypeError: list indices must be integers or slices, not tuple
>>> L[[0,3]]
Traceback (most recent call last):
File "<ipython-input-594-3b5c6677c8ff>", line 1, in <module>
L[[0,3]]
TypeError: list indices must be integers or slices, not list
조건부 인덱싱 (불가)
2보다 큰 원소에만 접근해봅시다. 오류가 반환됩니다.
>>> L[L>2]
Traceback (most recent call last):
File "<ipython-input-595-1fd63bf6db70>", line 1, in <module>
L[L<2]
TypeError: '<' not supported between instances of 'list' and 'int'
'5-1. 파이썬 제공 기본 자료구조 > 리스트' 카테고리의 다른 글
[파이썬기초] 리스트 요소 수정 (0) | 2020.10.23 |
---|---|
[파이썬기초] 리스트 요소 삽입 (insert 사용) (0) | 2020.10.23 |
[파이썬기초] 리스트 요소 추가 (append 사용) (0) | 2020.10.23 |
[파이썬 기초] 리스트(list) 인덱싱과 슬라이싱 (2) 중첩이 있는 경우 (0) | 2020.10.22 |
[파이썬 기초] 리스트(list) 소개, 정의 (0) | 2020.10.22 |
댓글