Python의 목록에서 요소 색인 찾기
이 튜토리얼은 파이썬 목록에서 요소의 위치 또는 색인을 찾는 방법을 보여줍니다.
List index()
메서드를 사용하여 Python에서 목록 색인 찾기
Python 목록에는index()
라는 내장 메소드가 있으며, 기존 목록 내에서 검색 할 값을 나타내는 단일 매개 변수를 허용합니다. 이 함수는 목록 내에서 발생하는 횟수에 관계없이 인덱스0
에서 시작하여 찾은 첫 번째 발생의 인덱스를 반환합니다.
예를 들어, 반복되는 값이20
인 목록을 선언하고index(20)
함수를 호출하고 반환 된 내용을 인쇄합니다.
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(20))
출력:
2
lst
배열 내에서 발견 된20
값의 첫 번째 발생은 함수 호출의 결과 인 색인2
에 있습니다. 동일한 값을 가진 다른 요소는 이미 목록 내에서 일치하는 항목을 찾았으므로 무시됩니다.
주어진 목록에 값이없고 존재하지 않는 값을 전달하면서index()
를 호출하면 어떻게됩니까? 예를 들어 보겠습니다.
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(21))
출력:
ValueError: 21 is not in list
목록에서 색인을 찾을 수 없으면 함수에서 오류가 발생합니다. 어떤 경우에는 오류를 호출하는 것이 바람직하지 않을 수 있습니다. 이를 방지하려면try...except
블록으로 오류를 포착하고 색인이 목록 내에 존재하지 않는 경우-1
로 지정하십시오.
lst = [13, 4, 20, 15, 6, 20, 20]
try:
ndx = lst.index(21)
except:
ndx = -1
print(ndx)
출력:
-1
이렇게하면 명시 적 오류를 호출 할 필요가 없으며 프로그램이 작업 후 계속 실행될 수 있습니다.
numpy.where()
를 사용하여 Python에서 목록 색인 찾기
NumPy
모듈에는 where()
라는 미리 정의 된 함수가 있습니다. 나열하고 조건을 수락합니다.
이 경우 주어진 값의 인덱스를 찾기 위해where()
를 독점적으로 사용합니다. 내장index()
함수와 달리where()
함수는 값이 목록 내에 두 번 이상 존재하는 경우 값이있는 색인 목록을 리턴 할 수 있습니다. 이것은 첫 번째 발생 대신 값의 모든 발생이 필요한 경우에 유용합니다.
첫 번째 단계는 Python 목록을NumPy
배열로 변환하는 것입니다. 이렇게하려면np.array()
함수를 호출합니다.
import numpy as np
lst = np.array(lst=[13, 4, 20, 15, 6, 20, 20])
NumPy
배열을 초기화 한 후where()
의 첫 번째 매개 변수 만 채우면됩니다. 첫 번째 매개 변수를lst == 20
으로 초기화하여 값이20
인 주어진 목록의 색인을 찾습니다.
import numpy as np
lst = [13, 4, 20, 15, 6, 20, 20]
lst = np.array(lst)
result = np.where(lst == 20)
print(result)
출력:
(array([2, 5, 6]),)
NumPy
는 주로 행렬을 다루기 때문에where()
함수는 단일 목록 대신 배열의 튜플을 반환합니다. 단일 목록 만 출력하는 것이 선호되는 경우 결과의 첫 번째 인덱스를 호출하고print()
를 사용하여 출력합니다.
import numpy as np
lst = [13, 4, 20, 15, 6, 20, 20]
lst = np.array(lst)
result = np.where(lst == 20)
print(result[0])
출력:
[2 5 6]
NumPy
배열은 일반 쉼표 대신 단일 공백으로 구분됩니다.
요약하면index()
함수는 Python 목록 내에서 요소의 위치를 찾는 가장 쉬운 방법입니다. 그러나이 함수는 주어진 값이 처음 나타나는 인덱스 만 반환합니다.
값의 여러 인스턴스가있는 경우 여러 인덱스를 반환하려면NumPy
모듈에서where()
함수를 사용하도록 선택할 수 있습니다.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn