Python의 목록에서 요소의 모든 인덱스 찾기
-
for
루프를 사용하여 요소의 모든 발생 인덱스 찾기 -
numpy.where()
함수를 사용하여 Python에서 요소의 모든 발생 색인 찾기 -
more_itertools.locate()
함수를 사용하여 요소의 모든 발생 인덱스를 찾습니다
목록은 Python에서 단일 이름으로 여러 요소를 저장하는 데 사용됩니다. 각 요소는 목록에서의 위치를 사용하여 액세스 할 수 있습니다. 요소는 목록의 여러 위치에있을 수 있습니다.
이 튜토리얼에서는 목록에서 특정 요소의 모든 발생 인덱스를 찾는 방법을 소개합니다. 다음 목록을 사용하여 1
요소의 모든 인덱스를 찾습니다.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
for
루프를 사용하여 요소의 모든 발생 인덱스 찾기
목록을 쉽게 반복하고 각 요소를 필요한 요소와 비교하고 색인을 찾을 수 있습니다. 최종 결과를 새 목록에 저장할 수 있습니다. 다음 예에서는range()
함수를 사용하여 목록을 반복합니다.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = []
x = 1 # The required element
for i in range(len(l1)):
if l1[i] == x:
pos.append(i)
print(pos)
출력:
[0, 2, 8]
위의 코드를보다 효율적이고 간결하게 구현하는 방법은 아래 목록 이해를 사용하는 것입니다.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i in range(len(l1)) if l1[i] == 1]
print(pos)
출력:
[0, 2, 8]
마찬가지로 인덱스와 값을 함께 반환하는enumerate()
함수를 사용할 수도 있습니다. 예를 들면 :
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i, x in enumerate(l1) if x == 1]
print(pos)
출력:
[0, 2, 8]
numpy.where()
함수를 사용하여 Python에서 요소의 모든 발생 색인 찾기
NumPy
라이브러리에는 특정 조건에 따라 배열에서 요소의 인덱스를 반환하는 데 사용되는where()
함수가 있습니다. 이 방법의 경우 목록을 배열로 전달해야합니다. 최종 결과도 배열에 있습니다. 다음 코드 스 니펫은이 메서드를 사용하는 방법을 보여줍니다.
import numpy as np
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = np.where(np.array(l1) == 1)[0]
print(pos)
출력:
[0 2 8]
more_itertools.locate()
함수를 사용하여 요소의 모든 발생 인덱스를 찾습니다
more_itertools
는 타사의 편리한 모듈입니다. iterable로 작업 할 때 효율적이고 간결한 코드를 만들 수있는 많은 함수가 있습니다. 이 모듈의locate()
함수는 조건에 대해True
인 요소의 인덱스를 반환합니다. itertools
객체를 반환합니다. 다음 코드 스 니펫은이 방법을 사용하는 방법을 설명합니다.
from more_itertools import locate
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = list(locate(l1, lambda x: x == 1))
print(pos)
출력:
[0, 2, 8]
최종 결과가 목록 형식인지 확인하기 위해list()
함수를 사용합니다.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn