파이썬 리스트에서 같은 값의 모든 인덱스 찾기

이 카테고리 글 목록

전체글 보기

리스트에서 같은 값이 나오는 모든 위치를 찾으려면 enumerate()로 인덱스와 값을 함께 읽고, 찾는 값과 일치하는 인덱스만 모으세요. 아래 가상 목록에서 배는 세 번 나오며 첫 위치의 번호는 0입니다.

fruits = ["배", "자두", "배", "자두", "배"]
target = "배"
positions = [index for index, fruit in enumerate(fruits) if fruit == target]
print("배가 나온 인덱스", positions)
배가 나온 인덱스 [0, 2, 4]

enumerate(fruits)는 첫 항목부터 (0, "배"), (1, "자두")처럼 두 값을 묶어 내놓습니다. 조건을 통과한 항목마다 인덱스 하나를 추가하므로, 사이에 다른 과일이 있어도 뒤에서 다시 나온 배의 위치까지 얻습니다. 결과의 2는 fruits[2]로 바로 사용할 수 있는 인덱스입니다.

첫 위치만 필요하거나 찾는 값이 없을 때

list.index()는 일치한 첫 위치를 반환합니다. 찾는 값이 없을 때 index()는 ValueError를 내고, 위의 모든 위치 탐색은 빈 리스트를 반환합니다.

fruits = ["배", "자두", "배", "자두", "배"]
print("배의 첫 인덱스", fruits.index("배"))

target = "사과"
positions = [index for index, fruit in enumerate(fruits) if fruit == target]
print("사과가 나온 인덱스", positions)
try:
    print("사과의 첫 인덱스", fruits.index(target))
except ValueError:
    print("사과의 첫 인덱스 없음 (ValueError)")
배의 첫 인덱스 0
사과가 나온 인덱스 []
사과의 첫 인덱스 없음 (ValueError)

가상 과일 목록은 Windows의 Python 3.14.3에서 실행했습니다. 인덱스 시작값과 첫 일치 규칙은 Python의 enumerate 문서와 list.index가 포함된 리스트 메서드 문서에서 확인할 수 있습니다.

이 카테고리의 다른 글

전체글 보기

“파이썬 리스트에서 같은 값의 모든 인덱스 찾기”에 대한 1개의 생각

댓글 남기기