Python Listar index() com exemplo

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 o mais importante é 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() de lista integrado, você também pode usar outras maneiras de obter o índice, como percorrer a 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

parâmetros Descrição
elemento O elemento cujo índice você deseja obter.
começo Este parâmetro é opcional. Você pode definir o índice start: para procurar o 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 por índice em uma lista usando índice 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 o índice na lista de um elemento que não está presente, você receberá um erro conforme 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 quero todos os índices com o nome ‘Guru’.

Usando o loop for, deveremos ser capazes de obter vários índices, conforme 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 está um exemplo que mostra como obter todos os índices usando while-loop

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 com python. Você pode usar enumerate para obter todos os índices do elemento em uma lista. Ele recebe a entrada como um objeto iterável (ou seja, um objeto que pode ser repetido) e a saída é um objeto com um contador para cada item.

O exemplo a seguir mostra como usar 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 é usada especialmente para arrays. Então aqui usaremos NumPy para obter o índice do elemento que precisamos da lista fornecida.

Para utilizar o NumPy, temos que instalá-lo e importá-lo.

Aqui estão as etapas para o mesmo:

Passo 1) Instalar NumPy

pip install numpy

Passo 2) Importe o módulo NumPy.

import numpy as np

Passo 3) Faça uso de np.array para converter 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, usandonp.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

O more_itertools.locate() ajuda a encontrar os índices do elemento 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 estão as etapas para instalar e usar more_itertools

Passo 1) Instale more_itertools usando pip (gerenciador de pacotes python). 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]

Resumo

  • O método list index() ajuda você a encontrar o índice de um determinado elemento. Esta é a maneira mais fácil e direta de obter o índice.
  • 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 list.
  • Além do método de lista integrado, você também pode usar outras maneiras de obter o índice, como percorrer a lista, usar compreensões de lista, usar enumerate(), usar um filtro, etc.
  • Usando for-loop e while-loop para obter os vários índices de um determinado elemento.
  • 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.
  • Eles ajudam a reduzir loops mais longos e tornam seu código mais fácil de ler e manter.
  • Você pode usar enumerate para obter todos os índices do elemento em uma lista.
  • A função Enumerate() é uma função integrada disponível com python. Ele recebe a entrada como um objeto iterável (ou seja, um objeto que pode ser repetido) e a saída é um objeto com um contador para cada item.
  • O método filter() filtra a lista fornecida com base na função fornecida.
  • A biblioteca Numpy é usada especialmente para arrays. Você pode usar NumPy para obter o índice do elemento fornecido na lista.
  • A more_itertools.locate() é mais uma biblioteca python que ajuda a encontrar os índices da lista fornecida.

Boletim informativo diário Guru99

Comece o seu dia com as últimas e mais importantes notícias sobre IA entregues agora mesmo.