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: