Python Listar index() com exemplo
⚡ Resumo Inteligente
Python list index() retorna a primeira posição de um determinado elemento, enquanto looping Os constructos, list comprehensions, enumerate(), filter(), a biblioteca NumPy e more_itertools.locate() estendem essa técnica para coletar todos os índices correspondentes em uma lista que contém valores duplicados.
Uma lista é um contêiner que armazena itens de diferentes tipos de dados (ints, floats, booleanos, strings, etc.) em uma sequência ordenada. É uma estrutura de dados importante que está embutida em Python. Os dados são escritos entre colchetes ([]) e os valores são separados por vírgula (,).
Os itens dentro da lista são indexados com o primeiro elemento começando no índice 0. Você pode fazer alterações na lista criada adicionando novos itens ou atualizando, excluindo os existentes. Também pode ter itens duplicados e uma lista aninhada.
Existem muitos métodos disponíveis em uma lista, e um dos importantes é o index().
Python Índice de lista()
O método list index() ajuda você a encontrar o primeiro índice mais baixo de um determinado elemento. Se houver elementos duplicados dentro da lista, o primeiro índice do elemento será retornado. Esta é a maneira mais fácil e direta de obter o índice.
Além do método `index()` da lista, você também pode usar outras maneiras de obter o índice, como `loo`.ping através da lista, usando compreensões de lista, enumerate(), métodos de filtro.
O método list index() retorna o primeiro índice mais baixo do elemento fornecido.
Sintaxe
list.index(element, start, end)
Parâmetros Técnicos
| Parâmetros Técnicos | Descrição |
|---|---|
| elemento | O elemento cujo índice você deseja obter. |
| começar | Este parâmetro é opcional. Você pode definir o índice inicial para a busca do elemento. Se não for fornecido, o valor padrão é 0. |
| final | Este parâmetro é opcional. Você pode especificar o índice final do elemento a ser pesquisado. Caso não seja informado, é considerado até o final da lista. |
Valor de retorno
O método list index() retorna o índice do elemento fornecido. Se o elemento não estiver presente na lista, o método index() gerará um erro, por exemplo, ValueError: 'Element' is not in the list.
Exemplo: Para encontrar o índice de um determinado elemento.
Na lista my_list = ['A', 'B', 'C', 'D', 'E', 'F'], gostaríamos de saber o índice dos elementos C e F.
O exemplo abaixo mostra como obter o índice.
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("The index of element C is ", my_list.index('C')) print("The index of element F is ", my_list.index('F'))
Saída:
The index of element C is 2 The index of element F is 5
Exemplo: Usando início e fim em index()
Neste exemplo, tentaremos limitar a busca pelo índice em uma lista usando os índices inicial e final.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('C', 1, 5)) print("The index of element F is ", my_list.index('F', 3, 7)) #using just the startindex print("The index of element D is ", my_list.index('D', 1))
Saída:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Exemplo: Para testar o método index() com um elemento que não está presente.
Ao tentar pesquisar na lista um elemento que não está presente, você receberá um erro como o mostrado abaixo:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Saída:
Traceback (most recent call last): File "display.py", line 3, in <module> print("The index of element C is ", my_list.index('Z')) ValueError: 'Z' is not in list
Usando for-loop para obter o índice de um elemento em uma lista
Com o método list.index(), vimos que ele fornece o índice do elemento que é passado como argumento.
Agora considere a lista como: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. O nome 'Guru' está presente 3 vezes no índice, e eu quero todos os índices com o nome 'Guru'.
Utilizando o laço `for`, devemos conseguir obter os múltiplos índices, como mostrado no exemplo abaixo.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range(0, len(my_list)) : if my_list[i] == 'Guru' : all_indexes.append(i) print("Originallist ", my_list) print("Indexes for element Guru : ", all_indexes)
Saída:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Usando loop while e list.index()
Usar um loop while percorrerá a lista fornecida para obter todos os índices do elemento fornecido.
Na lista: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], precisamos de todos os índices do elemento 'Guru'.
Abaixo segue um exemplo que mostra como obter todos os índices usando um loop while.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index('Guru', elementindex+1) result.append(elementindex) except ValueError: break print("OriginalList is ", my_list) print("The index for element Guru is ", result)
Saída:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Usando a compreensão de lista para obter o índice do elemento em uma lista
Para obter todos os índices, uma maneira rápida e direta é usar a compreensão de lista na lista.
As compreensões da lista são Python funções que são usadas para criar novas sequências (como listas, dicionários, etc.), ou seja, usar sequências que já foram criadas.
Eles ajudam a reduzir loops mais longos e tornam seu código mais fácil de ler e manter.
O exemplo a seguir mostra como fazer isso:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru'] print("Indexes for element Guru : ", all_indexes)
Saída:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Usando Enumerate para obter o índice de um elemento em uma lista
A função Enumerate() é uma função integrada disponível em PythonVocê pode usar o método `enumerate` para obter todos os índices dos elementos em uma lista. Ele recebe como entrada um objeto iterável (ou seja, um objeto que pode ser percorrido em loop) e retorna um objeto com um contador para cada item.
O exemplo a seguir mostra como usar o método `enumerate` em uma lista para obter todos os índices de um determinado elemento.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Saída:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Usando filtro para obter o índice de um elemento em uma lista
O método filter() filtra a lista fornecida com base na função fornecida. Cada elemento da lista será passado para a função, e os elementos necessários serão filtrados com base na condição fornecida na função.
Vamos usar o método filter() para obter os índices de um determinado elemento na lista.
O exemplo a seguir mostra como usar o filtro em uma lista.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print("Indexes for element Guru : ", all_indexes)
Saída:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Usando NumPy para obter o índice de um elemento em uma lista
A biblioteca NumPy é especialmente usada para arrays. Portanto, aqui usaremos o NumPy para obter o índice do elemento que precisamos na lista fornecida.
Para utilizar o NumPy, temos que instalá-lo e importá-lo.
Aqui estão os passos a seguir:
Passo 1) Instalar NumPy
pip install numpy
Passo 2) Importe o módulo NumPy.
import numpy as np
Passo 3) Utilize a função np.array para converter uma lista em um array.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Passo 4) Obtenha o índice do elemento desejado usando np.where().
item_index = np.where(np_array == 'Guru')[0]
O código de trabalho final com saída é o seguinte:
import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list) item_index = np.where(np_array == 'Guru')[0] print("Originallist ", my_list) print("Indexes for element Guru :", item_index)
Saída:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Usando more_itertools.locate() para obter o índice de um elemento em uma lista
A função `more_itertools.locate()` ajuda a encontrar os índices dos elementos na lista. Este módulo funcionará com Python versão 3.5+. O pacote mais_itertools deve ser instalado primeiro para poder usá-lo.
A seguir, apresentamos os passos para instalar e utilizar o more_itertools:
Passo 1) Instale o more_itertools usando o pip (Python gerenciador de pacotes). O comando é
pip install more_itertools
Passo 2) Assim que a instalação estiver concluída, importe o localizar módulo conforme mostrado abaixo.
from more_itertools import locate
Agora você pode usar o módulo de localização em uma lista, conforme mostrado abaixo no exemplo:
from more_itertools import locate my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist : ", my_list) print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Saída:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]

