Encontre o índice de um elemento em uma lista em Python
-
Use o método List
index()para encontrar o índice de uma lista em Python -
Use
numpy.where()para encontrar o índice de uma lista em Python
Este tutorial demonstrará como encontrar a posição ou índice de um elemento em uma lista Python.
Use o método List index() para encontrar o índice de uma lista em Python
A lista Python possui um método integrado chamado index(), que aceita um único parâmetro que representa o valor a ser pesquisado na lista existente. A função retorna o índice da primeira ocorrência que encontra a partir do índice 0, independentemente de quantas vezes ele ocorre na lista.
Por exemplo, declare uma lista com um valor repetido de 20 e chame a função index(20) e imprima o que ela retorna.
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(20))
Resultado:
2
A primeira ocorrência do valor 20 encontrada no array lst foi no índice 2, que é o resultado da chamada de função. Os outros elementos com o mesmo valor são ignorados, pois já encontrou uma correspondência na lista.
O que acontece quando um valor não existe na lista fornecida e chamamos index() passando o valor inexistente? Vamos ver isso por exemplo.
lst = [13, 4, 20, 15, 6, 20, 20]
print(lst.index(21))
Resultado:
ValueError: 21 is not in list
A função gerará um erro se o índice não for encontrado na lista. Em alguns casos, isso pode ser desfavorável para invocar um erro. Para evitar isso, pegue o erro com um bloco try...except e faça com que, se o índice não existir na lista, atribua-o como -1.
lst = [13, 4, 20, 15, 6, 20, 20]
try:
ndx = lst.index(21)
except:
ndx = -1
print(ndx)
Resultado:
-1
Dessa forma, não será necessário invocar um erro explícito e o programa poderá continuar em execução após a operação.
Use numpy.where() para encontrar o índice de uma lista em Python
O módulo NumPy tem uma função predefinida chamada where() que trata da localização de vários itens em uma lista e aceita uma condição.
Nesse caso, usaremos exclusivamente where() para localizar os índices de um determinado valor. Ao contrário da função integrada index(), a função where() pode retornar uma lista de índices onde o valor está localizado se existir mais de uma vez em uma lista. Isso é útil se você precisar de todas as ocorrências do valor, em vez de apenas a primeira ocorrência.
O primeiro passo é converter uma lista Python em um array NumPy. Para fazer isso, chame a função np.array().
import numpy as np
lst = np.array(lst=[13, 4, 20, 15, 6, 20, 20])
Depois de inicializar o array NumPy, só precisamos preencher o primeiro parâmetro de where(). Inicialize o primeiro parâmetro como lst == 20 para localizar os índices da lista fornecida com o valor 20.
import numpy as np
lst = [13, 4, 20, 15, 6, 20, 20]
lst = np.array(lst)
result = np.where(lst == 20)
print(result)
Resultado:
(array([2, 5, 6]),)
Visto que NumPy lida principalmente com arrays, a função where() retorna uma tupla de arrays em vez de apenas uma única lista. Se a saída de apenas a lista única for preferida, chame o primeiro índice do resultado e exiba-o usando 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])
Resultado:
[2 5 6]
Observe que as arrays NumPy são delimitadas por um único espaço em branco em vez das vírgulas normais.
Em resumo, a função index() é a maneira mais fácil de encontrar a posição de um elemento em uma lista Python. Embora, essa função retorne apenas o índice da primeira ocorrência do valor fornecido.
Para retornar vários índices se houver várias instâncias do valor, você pode optar por usar a função where() no módulo NumPy.
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