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.

  • ๐Ÿ”˜ Mรฉtodo index(): A funรงรฃo integrada index() retorna a primeira posiรงรฃo mais baixa de um elemento e aceita limites iniciais e finais opcionais.
  • โ˜‘๏ธ Erro de valor: A funรงรฃo `index()` gera um erro `ValueError` quando o elemento estรก ausente, portanto, envolva a chamada em um bloco `try-except` para garantir buscas seguras.
  • โœ… Todas as ocorrรชncias: Um laรงo `for`, um laรงo `while` ou uma compreensรฃo de lista coleta todos os รญndices quando um valor se repete dentro da lista.
  • ๐Ÿงช Auxiliares integrados: As funรงรตes `enumerate()` e `filter()` associam um รญndice a cada item, oferecendo maneiras concisas de coletar posiรงรตes correspondentes em uma รบnica linha de cรณdigo.
  • ๐Ÿ› ๏ธ NumPy e mais ferramentas de iteraรงรฃo: As funรงรตes `np.where()` e `more_itertools.locate()` retornam todos os รญndices correspondentes de forma eficiente para conjuntos de dados grandes.
  • ๐Ÿค– Fluxos de trabalho de IA: Os fluxos de trabalho de aprendizado de mรกquina localizam as posiรงรตes dos rรณtulos e as amostras correspondentes por รญndice antes que os arrays alimentem um modelo.

Python รndice de lista()

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]

Perguntas Frequentes

O mรฉtodo `index()` gera um `ValueError` quando o elemento estรก ausente. Para evitar que um valor ausente cause a falha do seu programa, envolva a chamada em um bloco `try-except` ou verifique primeiro se o elemento estรก presente usando o operador `in`.

O valor retornado por `index()` รฉ sempre uma posiรงรฃo nรฃo negativa contada a partir do inรญcio. Vocรช pode passar argumentos `start` ou `end` negativos para delimitar a busca, mas `index()` em si nunca retorna um รญndice negativo para um elemento encontrado.

Sim. A funรงรฃo index() compara os elementos exatamente, entรฃo 'Guru' e 'guru' sรฃo tratados como valores diferentes. A busca por valores com grafia incorreta gera um ValueError. Normalize as strings com lower() antes de pesquisar se precisar de correspondรชncia que ignore maiรบsculas e minรบsculas.

Use o operador "in", por exemplo, se 'Guru' em my_list. Retorna True ou False sem gerar um erro, entรฃo vocรช pode chamar index() com seguranรงa somente quando o elemento estiver realmente presente na lista.

Para uma รบnica pesquisa, a funรงรฃo `index()` integrada jรก รฉ eficiente porque para na primeira correspondรชncia. Para encontrar muitos valores repetidamente, crie um mapa de dicionรกrio.ping cada valor associado ao seu รญndice, o que transforma cada busca em uma operaรงรฃo rรกpida de tempo constante.

Python Listas possuem o mรฉtodo `index()`, mas nรฃo o mรฉtodo `find()`. O mรฉtodo `index()` gera um `ValueError` quando o elemento estรก ausente, enquanto o mรฉtodo `find()` retorna -1. Para listas, capture o erro ou verifique a existรชncia do elemento com o operador `in`.

Localizar o รญndice de um elemento ajuda a mapear rรณtulos categรณricos para posiรงรตes numรฉricas, encontrar onde uma classe prevista aparece ou alinhar colunas de recursos antes do treinamento. O NumPy amplia isso com o mรฉtodo `np.where()` para buscas rรกpidas de รญndices em grandes arrays e conjuntos de dados.

Sim. O GitHub Copilot e os assistentes de IA com agentes geram index(), enumerate() e pesquisas baseadas em compreensรฃo a partir de um comentรกrio simples, sugerem tratamento seguro de erros para valores ausentes e refatoram loops, embora vocรช ainda deva testar casos extremos e confirmar as posiรงรตes retornadas.

Resuma esta postagem com: