Python의 목록에서 요소 색인 찾기

Rayven Esplanada 2023년1월30일
  1. List index()메서드를 사용하여 Python에서 목록 색인 찾기
  2. numpy.where()를 사용하여 Python에서 목록 색인 찾기
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()함수를 사용하도록 선택할 수 있습니다.

Rayven Esplanada avatar Rayven Esplanada avatar

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

관련 문장 - Python List