Pular para o conteúdo
2ª unidade · atualLição 1 de 4~15 min de leitura12 fichas para praticar

Listas

Uma lista guarda vários valores numa variável só, em ordem. Cada valor tem uma posição, o índice, que começa em 0. Quase tudo com lista é um laço passando pelas posições de 0 até len(lista) - 1.

Nesta lição0 de 4 vistas
  1. 1Caixinhas numeradas
  2. 2Mudando a lista
  3. 3Percorrer: pela posição ou pelo valor
  4. 4Quando a lista é obrigatória
Cinco caixinhas numeradas
numeros = [10, 25, 3, 47, 8]
10[0]25[1]3[2]47[3]8[4]

numeros[3] → 47

O número embaixo de cada caixa é o índice. São 5 elementos, então os índices vão de 0 a 4.

1

Caixinhas numeradas

Índice, len, fatia e in

Contando do fim, o Python também aceita índice negativo: -1 é o último, -2 o penúltimo e assim por diante. A fatia v[a:b] pega da posição a até antes da b.

Antes de rodar, preveja

Com numeros do exemplo. Se der erro, escreva erro.

8 perguntas
  1. numeros[0]
  2. numeros[2]
  3. numeros[-1]
  4. len(numeros)
  5. numeros[len(numeros) - 1]
  6. numeros[1:3]
  7. 47 in numeros
  8. numeros[5]
2

Mudando a lista

append, trocar, insert, del, pop e remove
ComandoO que faz
notas.append(8)coloca o 8 no fim
notas[1] = 6troca o valor da posição 1
notas.insert(0, 5)coloca o 5 na posição 0 e empurra os outros para a direita
del notas[2]tira o elemento da posição 2; os seguintes andam para a esquerda
x = notas.pop()tira o último e guarda em x
notas.remove(7)tira o primeiro 7 que encontrar (pelo valor, não pela posição)
len(notas)quantos elementos a lista tem agora

Experimente

Cada botão acrescenta uma linha ao programa. As caixinhas mostram a lista depois dela; a verde é a que mudou.

experimento.py
notas = [7, 5, 9]
7[0]5[1]9[2]
len(notas) = 3

notas = [7, 5, 9]

3

Percorrer: pela posição ou pelo valor

while com índice ou for com o valor

while com índice

exemplo.py
i = 0
while i < len(numeros):
print(numeros[i])
i = i + 1

Use quando precisar da posição: trocar valores, pesquisar onde está, comparar vizinhos. É o jeito que o professor prefere.

for com o valor

exemplo.py
for x in numeros:
print(x)

Mais curto quando só importa o valor: somar, contar, achar o maior. O x já é o valor, não a posição.

Somar os elementos
numeros = [7, 3, 9, 4]
soma = 0
i = 0
while i < len(numeros):
soma = soma + numeros[i]
i = i + 1
print(soma)
numeroslist · len 4
7[0]3[1]9[2]4[3]

Linha 1numeros = [7, 3, 9, 4]

a saída aparece aqui
1 / 18
4

Quando a lista é obrigatória

A pergunta que decide

Vou precisar dos valores de novo? Média é só somar e dividir: dá para fazer sem lista. Mas “quantos estão acima da média” precisa da média pronta antes de comparar cada valor, e aí os valores têm que estar guardados. Mostrar na ordem inversa, separar pares e ímpares, pesquisar uma posição: tudo isso pede lista.

acima_da_media.py
notas = []
i = 0
while i < 4:
notas.append(float(input()))
i = i + 1
media = sum(notas) / len(notas)
acima = 0
for n in notas:
if n > media:
acima = acima + 1
print(media, acima)

A lista vazia nasce uma vez, antes do laço, como um acumulador. Rodando com as entradas 7, 5, 9 e 3.

Erros que mais aparecem na prova

6 erros
Usar <= no while da lista.

while i <= len(v) chega em i = len(v), uma posição que não existe: o programa para com erro de índice. O certo é i < len(v).

Começar o índice em 1.

A primeira posição é 0. Começando em 1, o laço pula o primeiro elemento sem dar erro nenhum, o que é pior: a resposta sai errada em silêncio.

Criar a lista dentro do laço.

lista = [] dentro do laço esvazia a lista a cada volta, e no fim ela só tem o último valor. A lista vazia nasce uma vez, antes do laço, como um acumulador.

Confundir valor com posição.

No for x in lista, o x já é o valor. lista[x] usa o valor como se fosse posição. E o del recebe a posição: del frutas[2] tira o terceiro, não o número 2.

Começar o maior em 0.

Se todos os valores forem negativos, o 0 nunca é trocado e vira a resposta. Comece o maior e o menor com o primeiro elemento: maior = v[0].

Imprimir dentro do laço sem querer.

Na pesquisa, o print de “não encontrado” dentro do laço aparece uma vez por elemento. A resposta vem depois do laço, num if.

Próxima lição: Tuplas ›

Complemento, não atalho. O laboratório ajuda a entender a lógica. Para fixar de verdade, escreva do zero no Thonny ou no seu editor.