// aula 01 · Python · Estruturas de Dados · Mundo 3

Listas em Python


O que é uma lista?

🛒 Uma coleção ordenada e mutável

O Guanabara compara listas a uma fila de elementos — cada item tem uma posição (índice) e você pode adicionar, remover ou trocar elementos a qualquer momento. É a estrutura de dados mais usada no Python.

✅ Características

  • Ordenada — os itens mantêm a posição
  • Mutável — pode ser alterada após criada
  • Permite duplicatas — valores repetidos OK
  • Aceita tipos mistos — int, str, bool juntos

📌 Sintaxe

  • Criada com colchetes: [ ]
  • Itens separados por vírgula
  • Índice começa em 0
  • Índice negativo acessa do fim: -1 = último

Como os índices funcionam

"ana"
0
-5
"bia"
1
-4
"cal"
2
-3
"dna"
3
-2
"eli"
4
-1

↑ azul = índice positivo  ·  vermelho = índice negativo

nomes = ["ana", "bia", "cal", "dna", "eli"]

print(nomes[0])   # → ana    (primeiro)
print(nomes[2])   # → cal
print(nomes[-1])  # → eli    (último)
print(nomes[-2])  # → dna    (penúltimo)
print(len(nomes)) # → 5      (quantidade)

Fatiamento (slicing)

✂️ Pegando pedaços da lista

Com o operador [início:fim:passo] você extrai uma parte da lista. O fim não é incluído. Deixar em branco usa o padrão (começo ou fim da lista).

nums = [10, 20, 30, 40, 50, 60]

print(nums[1:4])   # → [20, 30, 40]  (índice 1 até 3)
print(nums[:3])    # → [10, 20, 30]  (do início até 2)
print(nums[3:])    # → [40, 50, 60]  (do índice 3 até o fim)
print(nums[::2])   # → [10, 30, 50]  (de 2 em 2)
print(nums[::-1])  # → [60, 50, 40, 30, 20, 10]  (invertida)

Principais métodos de lista

append(valor)

Adiciona um item ao final da lista.

lista.append("novo")
insert(i, valor)

Insere um item em uma posição específica.

lista.insert(0, "início")
remove(valor)

Remove a primeira ocorrência do valor.

lista.remove("ana")
pop(índice)

Remove e retorna o item do índice. Sem argumento, remove o último.

lista.pop() # último
lista.pop(0) # primeiro
sort()

Ordena a lista em ordem crescente. reverse=True para decrescente.

lista.sort()
lista.sort(reverse=True)
sorted(lista)

Retorna uma nova lista ordenada sem alterar a original.

nova = sorted(lista)
index(valor)

Retorna o índice da primeira ocorrência do valor.

lista.index("bia") # → 1
count(valor)

Conta quantas vezes o valor aparece na lista.

lista.count("ana") # → 1
reverse()

Inverte a ordem da lista no lugar.

lista.reverse()
frutas = ["maçã", "banana", "uva"]

frutas.append("pera")          # ['maçã','banana','uva','pera']
frutas.insert(1, "manga")       # ['maçã','manga','banana','uva','pera']
frutas.remove("uva")           # ['maçã','manga','banana','pera']
removida = frutas.pop()        # removida='pera'
frutas.sort()                   # ['banana','maçã','manga']
print(frutas.index("maçã"))     # → 1

Percorrendo e list comprehension

notas = [8.5, 6.0, 9.0, 7.5, 5.0]

# Percorrendo com for
for nota in notas:
    print(nota)

# Com índice usando enumerate
for i, nota in enumerate(notas):
    print(f"Aluno {i+1}: {nota}")

# List comprehension — forma compacta e pythônica
aprovados = [n for n in notas if n >= 7]
print(aprovados)  # → [8.5, 9.0, 7.5]

dobro = [n * 2 for n in notas]
print(dobro)      # → [17.0, 12.0, 18.0, 15.0, 10.0]