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
![Encontre o índice de um elemento em uma lista em Python](/img/Python/feature-image---python-find-index-of-value-in-array.webp)
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