Python List index(): Como Encontrar Posições de Elementos com Exemplos Práticos
Listas em Python são coleções ordenadas que podem conter itens de qualquer tipo de dados — inteiros, strings, booleanos, listas aninhadas e mais. O método embutido list.index() é a maneira mais rápida de localizar a posição de um elemento dentro dessa sequência. Abaixo você encontrará um guia passo a passo, completo com snippets de código e técnicas alternativas para recuperar índices, mesmo quando um elemento aparece múltiplas vezes.
Entendendo list.index()
O método list.index() retorna o menor índice no qual um valor especificado aparece. Se o valor não estiver presente, levanta um ValueError. Para referência, veja a documentação oficial do Python.
Sintaxe
list.index(elemento, start=0, end=len(list))
Parâmetros
| Parâmetro | Descrição |
|---|---|
elemento | O valor que você deseja localizar. |
start | Opcional. Inicia busca a partir deste índice. Padrão é 0. |
end | Opcional. Para busca antes deste índice. Padrão é o comprimento da lista. |
Valor de Retorno
Retorna o índice inteiro do primeiro elemento correspondente. Levanta ValueError se o elemento estiver ausente.
Exemplo: Uso Básico
my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("Index of 'C':", my_list.index('C')) # 2
print("Index of 'F':", my_list.index('F')) # 5
Exemplo: Usando start e end
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("Index of 'C' between 1 and 5:", my_list.index('C', 1, 5)) # 2
print("Index of 'F' between 3 and 7:", my_list.index('F', 3, 7)) # 5
print("Index of 'D' starting from 1:", my_list.index('D', 1)) # 3
Exemplo: Elemento Não Encontrado
my_list = ['A', 'B', 'C', 'D']
try:
my_list.index('Z')
except ValueError as e:
print(e) # 'Z' is not in list
Recuperando Todos os Índices para um Elemento Repetido
Quando um valor ocorre múltiplas vezes, list.index() retorna apenas a primeira posição. Abaixo estão várias abordagens para capturar todos os índices.
Usando Loop For
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
indices = []
for i, val in enumerate(my_list):
if val == 'Guru':
indices.append(i)
print(indices) # [0, 3, 6]
Usando Loop While com index()
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
indices = []
next_index = -1
while True:
try:
next_index = my_list.index('Guru', next_index + 1)
indices.append(next_index)
except ValueError:
break
print(indices) # [0, 3, 6]
List Comprehension
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Usando enumerate()
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Usando filter()
indices = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print(indices) # [0, 3, 6]
Técnicas Avançadas
NumPy para Grandes Conjuntos de Dados
Ao trabalhar com dados numéricos ou textuais grandes, converter a lista para array NumPy pode acelerar buscas.
pip install numpy import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] array = np.array(my_list) indices = np.where(array == 'Guru')[0] print(indices) # [0 3 6]
more_itertools.locate()
Para uma abordagem funcional limpa, more_itertools.locate() retorna um iterador de índices que satisfazem um predicado.
pip install more_itertools from more_itertools import locate indices = list(locate(my_list, lambda x: x == 'Guru')) print(indices) # [0, 3, 6]
Principais Conclusões
list.index()é o método mais direto para encontrar a primeira ocorrência de um valor.- Use parâmetros
starteendpara restringir o intervalo de busca. - Quando um elemento aparece múltiplas vezes, empregue loops, list comprehensions,
enumerate(),filter()ou bibliotecas externas como NumPy ou more_itertools para reunir todos os índices. - Sempre trate
ValueErrorquando o valor buscado pode não existir.
python
- Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos
- Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
- Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
- Função round() em Python Explicada com Exemplos Práticos
- Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas
- Python timeit(): Medindo Tempo de Execução com Exemplos Práticos
- Counter do Python em collections: Contagem Eficiente, Atualização e Operações Aritméticas
- Python list.count(): Guia Especializado com Exemplos Práticos
- Como Remover Elementos Duplicados de uma Lista em Python
- Como Remover Itens de uma Lista em Python: remove(), pop(), clear() e del