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()` 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 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 eu 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 o mรฉtodo `loo`.ping atravรฉs da 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 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.

Resuma esta postagem com: