Programação · Ensino médio · aula 6 de 7 · ~2 min de leitura
Listas em Python
Como guardar vários valores em uma variável só, percorrê-los e modificá-los.
Esta aula ainda aguarda revisão da comunidade. Achou um erro? Sugira uma correção.
Vários valores, um nome só
Imagine guardar as notas de quarenta alunos. Criar quarenta variáveis seria um pesadelo. Uma lista guarda vários valores em ordem, sob um único nome. Ela é escrita entre colchetes, com os itens separados por vírgula:
notas = [7.5, 9.0, 6.0, 8.5]
frutas = ["uva", "caju", "manga"]
print(notas)
print(frutas)
Posições começam em zero
Cada item tem uma posição, o índice, e a contagem começa no zero:
frutas = ["uva", "caju", "manga"]
print(frutas[0])
print(frutas[2])
print(frutas[-1])
O índice -1 é um atalho para o último item. Pedir uma posição que não existe, como frutas[3], causa um IndexError.
Em uma lista com 5 itens, qual é o índice do último?
Modificando a lista
frutas = ["uva", "caju", "manga"]
frutas[1] = "acerola"
frutas.append("goiaba")
frutas.remove("uva")
print(frutas)
print(len(frutas))
lista[i] = valortroca o item da posiçãoi;appendacrescenta no fim;removetira a primeira ocorrência do valor;lendiz quantos itens há.
Percorrendo com for
O for da aula passada foi feito para isso: a cada volta, a variável recebe um item da lista.
notas = [7.5, 9.0, 6.0, 8.5]
for nota in notas:
if nota >= 7:
print(nota, "aprovado")
else:
print(nota, "recuperação")
Funções prontas
notas = [7.5, 9.0, 6.0, 8.5]
print(sum(notas))
print(max(notas))
print(min(notas))
print(sum(notas) / len(notas))
print(sorted(notas))
A penúltima linha calcula a média: soma dividida pela quantidade. sorted devolve uma cópia em ordem crescente.
Está na lista?
O operador in responde verdadeiro ou falso:
convidados = ["Ana", "Bento", "Clara"]
print("Bento" in convidados)
print("Dora" in convidados)
Fatias
Dois-pontos dentro dos colchetes recortam um pedaço. O começo entra, o fim fica de fora, como no range:
letras = ["a", "b", "c", "d", "e"]
print(letras[1:4])
print(letras[:2])
print(letras[3:])
Montando uma lista com dados digitados
nomes = []
for i in range(3):
nome = input("Nome: ")
nomes.append(nome)
print("Chamada:", sorted(nomes))
Para praticar
- Crie uma lista com as temperaturas de uma semana e mostre a maior, a menor e a média.
- Dada uma lista de números, crie outra só com os pares.
- Leia cinco nomes e mostre-os em ordem alfabética, um por linha.
Teste o que você aprendeu
1. Na lista frutas = ['uva', 'caju', 'manga'], qual é o valor de frutas[1]?
2. O que faz frutas.append('goiaba')?
3. O que devolve len([4, 8, 15, 16])?
Fontes desta aula
- Python Software Foundation. O tutorial de Python: estruturas de dados.
- Allen B. Downey. Pense em Python (2ª edição) (2016).