Encontre o índice de um elemento em uma lista em Python

Rayven Esplanada 30 janeiro 2023
  1. Use o método List index() para encontrar o índice de uma lista em Python
  2. Use numpy.where() para encontrar o índice de uma lista em Python
Encontre o índice de um elemento em 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.

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

Artigo relacionado - Python List