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, inprint("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.