Python List index () com Exemplo

Índice:

Anonim

Uma lista é um contêiner que armazena itens de diferentes tipos de dados (ints, floats, booleanos, strings, etc.) em uma sequência ordenada. É uma importante estrutura de dados embutida no 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. Ele também pode ter itens duplicados e uma lista aninhada.

Existem muitos métodos disponíveis em uma lista, e o mais importante é o índice ().

Neste tutorial, você aprenderá:

  • Índice da lista Python ()
  • Usando for-loop para obter o índice de um elemento em uma lista
  • Usando while-loop e list.index ()
  • Usando a compreensão de lista para obter o índice do elemento em uma lista
  • Usando Enumerate para obter o índice de um elemento em uma lista
  • Usando filtro para obter o índice de um elemento em uma lista
  • Usando NumPy para obter o índice de um elemento em uma lista
  • Usando more_itertools.locate () para obter o índice de um elemento em uma lista

Índice da lista Python ()

O método list index () ajuda você a encontrar o primeiro índice mais baixo de um determinado elemento. Se houver elementos duplicados na 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 interno de lista index (), você também pode usar outras maneiras de obter o índice, como percorrer a lista, usando compreensões de lista, enumerate () e 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 que você deseja obter o índice.
começar Este parâmetro é opcional. Você pode definir o start: index para pesquisar o elemento. Se não for fornecido, o valor padrão é 0.
fim Este parâmetro é opcional. Você pode especificar o índice final para o elemento a ser pesquisado. Se não for fornecido, é 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: 'Elemento' não está na lista.

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 para os 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'))

Resultado:

The index of element C is 2The index of element F is 5

Exemplo: usando start e end em index ()

Neste exemplo, tentará limitar a pesquisa de í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 startindexprint("The index of element D is ", my_list.index('D', 1))

Resultado:

The index of element C is 2The index of element F is 5The index of element D is 3

Exemplo: Para testar o método index () com um elemento que não está presente.

Ao tentar pesquisar um índice na lista para o elemento que não está presente, você obterá 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'))

Resultado:

Traceback (most recent call last):File "display.py", line 3, in 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, devemos ser capazes de obter os índices múltiplos 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)

Resultado:

Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Usando while-loop e list.index ()

O uso de um loop while fará um loop pela 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 é fornecido um exemplo que mostra como obter todos os índices usando o loop while

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("OriginalList is ", my_list)print("The index for element Guru is ", result)

Resultado:

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 da lista.

Compreensões de listas são funções Python usadas para criar novas sequências (como listas, dicionários, etc.), ou seja, usando sequências já 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:

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)

Resultado:

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 executado em loop), 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 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'])

Resultado:

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 para o elemento fornecido 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)

Resultado:

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 matrizes. Portanto, aqui faremos uso de NumPy para obter o índice do elemento que precisamos da lista fornecida.

Para fazer uso do NumPy, temos que instalá-lo e importá-lo.

Aqui estão as etapas para o mesmo:

Etapa 1) Instale o NumPy

pip install numpy

Etapa 2) Importar o módulo NumPy.

import numpy as np

Etapa 3) Use np.array para converter a lista em uma matriz

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)

Etapa 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 npmy_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)

Resultado:

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 o python versão 3.5+. O pacote more_itertools deve ser instalado primeiro para fazer uso dele.

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

Etapa 2) Assim que a instalação for concluída, importe o módulo de localização 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 locatemy_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')))

Resultado:

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: 'Elemento' não está na lista.
  • Além do método de lista integrado, você também pode fazer uso de outras maneiras de obter o índice, como percorrer a lista, usando compreensões de lista, usando enumerate (), usando 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 da lista.
  • Compreensões de listas são funções Python 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 executado em loop), 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 matrizes. Você pode usar NumPy para obter o índice do elemento fornecido na lista.
  • O more_itertools.locate () é outra biblioteca python que ajuda a encontrar os índices da lista fornecida.