Acessar Itens de Lista em Python
Aprenda a acessar itens de listas Python usando indexação positiva e negativa, fatiamento com passo, listas aninhadas e o método index() com exemplos claros.
Uma lista Python é uma sequência ordenada e mutável que pode conter itens de qualquer tipo. Como as listas são ordenadas, cada item tem uma posição numérica fixa — chamada de índice — que você pode usar para ler, atualizar ou fatiar os dados.
Este capítulo aborda:
- Indexação positiva e negativa
- Fatiamento (início, fim, passo)
- Verificação de pertencimento com
in - Localização de posições com
index() - Acesso a itens em listas aninhadas
Para modificar listas, consulte Alterar Itens de Lista, Adicionar Itens de Lista e Remover Itens de Lista.
Indexação Positiva
Python usa indexação baseada em zero: o primeiro item está no índice 0, o segundo no índice 1, e assim por diante.
Index: 0 1 2 3 4
↓ ↓ ↓ ↓ ↓
fruits = ["apple","banana","cherry","durian","elderberry"]Use colchetes [] para recuperar um item pelo seu índice:
Solicitar um índice que não existe gera um IndexError:
fruits = ["apple", "banana", "cherry"]
print(fruits[10]) # IndexError: list index out of rangeSempre verifique len(list) - 1 para encontrar o limite superior válido, ou use um bloco try/except quando o comprimento for incerto.
Indexação Negativa
Índices negativos contam de trás para frente a partir do final da lista. O índice -1 é o último item, -2 é o penúltimo, e assim por diante.
Index: -5 -4 -3 -2 -1
↓ ↓ ↓ ↓ ↓
fruits = ["apple","banana","cherry","durian","elderberry"]A indexação negativa é especialmente útil quando você precisa do último elemento de uma lista cujo comprimento é desconhecido.
Fatiamento de Listas
Um fatia extrai uma sub-lista usando a sintaxe list[start:stop]. O índice start é incluído; o índice stop é excluído.
O fatiamento nunca gera um IndexError — Python limita automaticamente os limites fora do intervalo:
fruits = ["apple", "banana", "cherry"]
print(fruits[1:100]) # ['banana', 'cherry'] — no errorFatiamento com Passo
Um terceiro parâmetro — o passo — controla quantos itens pular entre cada seleção: list[start:stop:step].
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[0:9:2]) # [0, 2, 4, 6, 8] — every second item
print(numbers[::3]) # [0, 3, 6, 9] — every third item
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] — reversedUm passo negativo inverte a direção, portanto list[::-1] é a forma idiomática de inverter uma lista sem modificá-la no lugar.
Fatiamento com Índices Negativos
Índices negativos também funcionam em fatias:
fruits = ["apple", "banana", "cherry", "durian", "elderberry"]
print(fruits[-3:]) # ['cherry', 'durian', 'elderberry'] — last 3
print(fruits[-4:-1]) # ['banana', 'cherry', 'durian']Verificando se um Item Existe
Use o operador in para testar pertencimento sem conhecer o índice:
fruits = ["apple", "banana", "cherry", "durian", "elderberry"]
print("banana" in fruits) # True
print("mango" in fruits) # False
print("mango" not in fruits) # TrueIsso é mais limpo do que iterar manualmente e é o padrão preferido para verificações de existência.
Encontrando o Índice de um Item
O método index() retorna a posição da primeira ocorrência de um valor:
fruits = ["apple", "banana", "cherry", "banana", "elderberry"]
print(fruits.index("banana")) # 1 — first occurrence
print(fruits.index("elderberry")) # 4index() gera um ValueError se o valor não for encontrado. Proteja-o com in primeiro:
fruits = ["apple", "banana", "cherry"]
target = "mango"
if target in fruits:
print(fruits.index(target))
else:
print(f"{target!r} is not in the list")Você também pode limitar a busca a um intervalo usando index(value, start, stop):
fruits = ["apple", "banana", "cherry", "banana", "elderberry"]
# Find 'banana' starting from index 2 (skips the first occurrence)
print(fruits.index("banana", 2)) # 3Acessando Itens em Listas Aninhadas
Uma lista pode conter outras listas como elementos. Acesse itens aninhados encadeando colchetes de índice:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
print(matrix[0]) # [1, 2, 3] — first row
print(matrix[1][2]) # 6 — row 1, column 2
print(matrix[-1][-1]) # 9 — last row, last columnA mesma sintaxe de fatiamento se aplica a listas aninhadas:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[0][1:]) # [2, 3]Referência Rápida
| Sintaxe | Descrição |
|---|---|
lst[i] | Item no índice i (baseado em 0) |
lst[-i] | Item i posições a partir do final |
lst[a:b] | Fatia de a (inclusivo) a b (exclusivo) |
lst[a:b:s] | Fatia com passo s |
lst[::-1] | Cópia invertida da lista |
x in lst | True se x estiver presente |
lst.index(x) | Primeiro índice de x |
Capítulos Relacionados
- Listas Python — criação de listas, propriedades e visão geral
- Alterar Itens de Lista — atualizar valores por índice
- Adicionar Itens de Lista —
append(),insert(),extend() - Remover Itens de Lista —
remove(),pop(),del - Iterar Listas — iterar sobre cada item
- Métodos de Lista — referência completa de métodos
- Compreensão de Lista — construção concisa de listas