본문 바로가기
programming/Python

파이썬 리스트 음수 인덱스로 접근하여 출력하고 값 추출하는 방법 Python Access List Items Negative Indexing

by 개코 - 개발과 코딩 2021. 8. 11.

파이썬 리스트는 음수를 이용해 역방향으로 값을 추출할 수 있다. 인덱스가 0부터 시작하는 정방향이 아닌 -1부터 시작하는 역방향으로 값의 접근이 가능하다. 이것을 이용하면 문자열 조작시 뒤에서 연산하는 것이 가능하며 문장이라면 가장 마지막의 불필요한 값들을 제거할 수 있다.

파이썬 리스트 음수 인덱스를 이용한 범위 지정
파이썬 리스트 음수 인덱스를 이용한 범위 지정

 

음수 인덱스 출력하기

정방향 인덱스가 아닌 음수를 가진 역방향 인덱스가 어떻게 나타나는지 살펴보자.

파이썬 리스트의 인덱스는 정방향일 경우 0부터 시작하지만 음수 인덱스를 가진 역방향일 경우 -1부터 시작한다.

음수 인덱스를 출력하는 함수는 찾을 수 없었기에 간단한 코드를 추가했다.

vNegativeIndex = (-1)*len(vList)
for lpVar in vList:
    print("vList Each :", type(lpVar), vList.index(lpVar), vNegativeIndex, lpVar)
    vNegativeIndex += 1

음수 인덱스를 표현하기 위해 별도의 코드를 넣었다.

index() 함수를 이용하여 실제 값의 인덱스를 출력하고, 반대의 상황에서 음수 인덱스가 어떻게 출력하는지 살펴보자.

음수인덱스는 -1부터 시작한다

실제로 위의 음수 인덱스가 맞는지 코드로써 명시를 해 보자.

리스트의 인덱스에 -1을 지정하여 어떤 값이 출력되는지 확인해 본다.

만약 위의 이미지처럼 -1인 인덱스의 값에 리사 가 출력되면 확실해 지는 것이다.

vValue = vList[-1]
print("vList negative -1 :", type(vValue), vList.index(vValue), vValue)

결과를 보면 음수 인덱스의 시작은 -1 임을 증명했다.

 

음수로 범위 지정하기

파이썬 리스트는 음수로써 범위를 지정할 수 있다.

보통의 인덱스를 지정하는 방법과 같으며 단지 -만 붙으면 된다.

단, 시작위치와 끝 위치의 인덱스가 벗어나는 실수만 하지 않으면 된다.

vRangeList = vList[-5:-2]
print("vList Negative Range :", type(vRangeList), vRangeList)

위의 코드는 인덱스의 시작은 -5, 끝은 -2 이다.

인덱스가 -5인 위치에서 -2인 위치까지의 값을 추출하도록 하고 있다.

만약 숫자가 반대의 경우라면 범위가 맞지 않기 때문에 빈값이 출력된다.

음수 인덱스는 뒤에서 부터 시작하며 맨 뒤의 인덱스는 -1이다.

뒤에서부터 -5는 블랙핑크, -2는 로체 이다.

단, 파이썬 리스트의 끝인덱스로 지정된 값은 포함하지 않기 때문에 제니 까지만 출력된다.

 

시작위치 끝위치 생략 가능

인덱스 지정시 시작위치 또는 끝위치는 생략이 가능하다.

시작위치가 생략된 경우 리스트의 맨처음 인덱스가 0인 지점부터 값을 설정하며
끝위치가 생략된 경우 시작위치부터 마지막 위치의 값까지 설정하게 된다.

vRangeList = vList[:-2]
print("vList Negative Range :", type(vRangeList), vRangeList)

print('----------------------------------------------------------------------------------------------------')

vRangeList = vList[-5:]
print("vList Negative Range :", type(vRangeList), vRangeList)

위의 경우는 시작위치가 생략된 경우와 끝위치의 인덱스가 생략된 경우를 나타낸다.

시작위치가 생략되고 음수 인덱스가 -2인 지점까지의 값을 출력한다.

-2의 인덱스는 로체이다.

하지만, 파이썬 리스트의 특징 중 마지막 값은 포함하지 않기 때문에 로체는 제외된 값을 출력한다.

끝위치가 생략되고 인덱스가 -5인 지점부터 값을 출력한다.

끝위치가 생략되면 마지막 인덱스까지 값이 설정된다.

시작인덱스는 -5이므로 블랙링크부터 시작하여 마지막 값인 리사 까지 출력하게 된다.

반응형

댓글