Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python) 리스트에서 특정 요소의 인덱스를 찾는 방법

index() 메서드로 요소의 위치 찾기

파이썬에서 리스트(뿐만 아니라 튜플 등 모든 시퀀스 데이터 타입)에 포함된 특정 요소의 위치를 확인하려면 index() 메서드를 사용합니다. 이 메서드는 주어진 요소가 처음으로 나타나는 위치의 인덱스를 반환합니다.

인덱스는 0부터 시작한다는 점에 유의하세요. 아래 예시를 살펴보겠습니다.

>>> L1 = [45, 32, 100, 10, 24, 56]
>>> L1.index(24)
4

리스트 L1에서 값 24는 다섯 번째 자리에 있으므로, 인덱스 0부터 세어 4가 반환됩니다.

요소가 존재하지 않는 경우

찾고자 하는 값이 리스트에 없으면 ValueError 예외가 발생합니다. 따라서 안전한 코드를 작성하려면 예외 처리를 함께 사용하는 것이 좋습니다.

>>> L1.index(99)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 99 is not in list

>>> if 99 in L1:
...     print(L1.index(99))
... else:
...     print("요소가 존재하지 않습니다.")
요소가 존재하지 않습니다.

탐색 범위 지정하기

index() 메서드는 시작 인덱스와 끝 인덱스를 선택적으로 지정할 수 있습니다. 이를 활용하면 특정 범위 안에서만 요소를 검색할 수 있습니다.

>>> L1 = [45, 32, 100, 10, 24, 56]
>>> L1.index(24, 2)   # 인덱스 2부터 검색 시작
4

중복 요소가 여러 개일 때

동일한 값이 리스트에 여러 번 포함되어 있다면, index()는 항상 첫 번째 위치만 반환합니다. 모든 위치를 알고 싶다면 리스트 컴프리헨션과 enumerate()를 조합해 사용할 수 있습니다.

>>> L2 = [10, 20, 30, 20, 40, 20]
>>> [i for i, v in enumerate(L2) if v == 20]
[1, 3, 5]

이처럼 index() 메서드는 간단한 검색에 적합하고, 중복 위치 탐색이나 범위 검색 등 상황에 맞게 다양한 방법을 활용하면 됩니다.