Pular para o conteúdo

A primeira escola especializada em tecnologia do Alto Solimões, com corpo técnico formado na área.

Módulo 4: Estruturas de Dados

Listas; Fundamentos

Crie, acesse e modifique listas em Python

O que é uma lista?

Lista e a estrutura de dados mais usada em Python. Pense nela como uma gaveta com divisorias numeradas. Cada divisoria guarda um item e tem um índice que começa em zero.

Listas são mutáveis, ou seja, você pode adicionar, remover e alterar itens depois de criar. Dá para guardar qualquer tipo: números, textos, booleanos, até outras listas.

Criando listas

números: list[int] = [1, 2, 3, 4, 5]
nomes: list[str] = ["Ana", "Bruno", "Carla"]
tarefas: list[str] = [] # lista vazia

list[int] = lista de inteiros. list[str] = lista de strings.

Acessando elementos (índice começa em 0)

Cada item tem uma posição (índice), começando do 0:

frutas: list[str] = ["maçã", "banana", "laranja", "uva", "manga"]

print(frutas[0]) # → "maçã" (primeiro)
print(frutas[-1]) # → "manga" (ultimo)
print(frutas[-2]) # → "uva" (penultimo)
print(len(frutas)) # → 5

Visualizando:

Índice:   0        1         2        3       4
Valor:  "maçã"  "banana"  "laranja"  "uva"  "manga"

Slicing -- fatiando a lista

Com lista[início:fim:passo], você pega pedacos da lista. O início e incluso, o fim não:

números: list[int] = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

print(números[2:5]) # → [20, 30, 40]
print(números[:4]) # → [0, 10, 20, 30]
print(números[6:]) # → [60, 70, 80, 90]
print(números[::2]) # → [0, 20, 40, 60, 80]
print(números[::-1]) # → [90, 80, 70, ..., 0] (invertida!)

Modificando valores

Basta atribuir direto no índice:

notas: list[float] = [8.5, 7.0, 9.2, 6.8]
notas[1] = 7.5
print(notas) # → [8.5, 7.5, 9.2, 6.8]

Adicionando elementos

frutas: list[str] = ["maçã", "banana"]
frutas.append("laranja") # adiciona no final
frutas.insert(0, "uva") # adiciona na posição 0
print(frutas) # → ["uva", "maçã", "banana", "laranja"]

Removendo elementos

frutas: list[str] = ["maçã", "banana", "laranja", "uva"]

ultimo: str = frutas.pop() # remove e retorna o ultimo
segundo: str = frutas.pop(1) # remove e retorna o índice 1
frutas.remove("laranja") # remove pelo valor (sem retorno)
MétodoO que fazRetorna
append()Adiciona no finalNone
insert()Adiciona em posição XNone
pop()Remove por posiçãoElemento removido
remove()Remove por valorNone

Verificando se existe

O operador in checa se um valor está na lista:

cores: list[str] = ["vermelho", "azul", "verde"]

print("azul" in cores) # → True
print("roxo" not in cores) # → True

Para encontrar a posição:

animais: list[str] = ["gato", "cachorro", "peixe"]
print(animais.index("cachorro")) # → 1

Percorrendo listas

Com for (mais limpo):

alunos: list[str] = ["Ana", "Bob", "Carlos"]

for aluno in alunos:
print(f"Aluno: {aluno}")
# → Aluno: Ana
# → Aluno: Bob
# → Aluno: Carlos

Com enumerate (quando precisa do índice):

for i, aluno in enumerate(alunos, start=1):
print(f"{i}. {aluno}")
# → 1. Ana
# → 2. Bob
# → 3. Carlos

Exercício prático

Dada uma lista de notas:

  1. Calcule a média (soma / tamanho)
  2. Filtre os aprovados (nota >= 7) usando um loop
  3. Encontre a maior e a menor nota
notas: list[float] = [8.5, 6.0, 9.2, 4.5, 7.0, 5.5, 8.0, 3.0]

# 1. Some tudo com for, divida por len(notas)

# 2. Crie uma lista vazia e use append para notas >= 7

# 3. Use for para achar a maior é menor

Referências

Testa o que você leu

4 perguntas sobre esta aula. Errar aqui não custa nada - a explicação vem junto da correção.

Pergunta 1 de 4
Qual é o resultado de `lista[-1]` para `lista = [10, 20, 30, 40]`?