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]
