W3docs

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:

python— editable, runs on the server

Solicitar um índice que não existe gera um IndexError:

fruits = ["apple", "banana", "cherry"]
print(fruits[10])  # IndexError: list index out of range

Sempre 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"]
python— editable, runs on the server

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.

python— editable, runs on the server

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 error

Fatiamento 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]  — reversed

Um 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) # True

Isso é 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")) # 4

index() 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))  # 3

Acessando 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 column

A 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

SintaxeDescriçã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 lstTrue se x estiver presente
lst.index(x)Primeiro índice de x

Capítulos Relacionados

Prática

Prática
Which of the following ways can be used to access list items in Python?
Which of the following ways can be used to access list items in Python?
Was this page helpful?