Python의 목록에서 요소의 모든 인덱스 찾기

Manav Narula 2023년1월30일
  1. for 루프를 사용하여 요소의 모든 발생 인덱스 찾기
  2. numpy.where()함수를 사용하여 Python에서 요소의 모든 발생 색인 찾기
  3. more_itertools.locate()함수를 사용하여 요소의 모든 발생 인덱스를 찾습니다
Python의 목록에서 요소의 모든 인덱스 찾기

목록은 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 Narula
Manav Narula avatar Manav Narula avatar

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

관련 문장 - Python List