Montar uma lista numa linha
Os números já estão escritos: 2, depois 5, depois 1. Uma linha monta outra lista a partir deles. doubled = [n * 2 for n in prices] percorre cada número, dobra e guarda 4, depois 10, depois 2. prices não é reescrito. n é só o nome do número em que a linha está: primeiro 2, depois 5, depois 1.
prices = [2, 5, 1]
doubled = [n * 2 for n in prices]
print(doubled[0])
print(doubled[1])
print(len(prices))
Na tela aparece 4, depois 10, depois 3. 4 é o primeiro número novo, 2 em dobro. 10 é o seguinte, 5 em dobro. O 3 é quantos números prices ainda tem. O último número novo é 2, de 1 em dobro, e este programa não o escreve.
prices[0] continua 2. Dobrar escreveu uma lista nova. Não trocou a antiga. Quando a linha acaba, você lê doubled. n só servia enquanto a linha percorria os números.
Um teste pode deixar um número de fora. Este programa começa de novo, então doubled não está aqui. small = [n for n in prices if n < 5] guarda um número só quando ele é menor que 5. 2 entra. 5 não entra. 1 entra. A lista nova é 2, depois 1. prices ainda tem três números.
prices = [2, 5, 1]
small = [n for n in prices if n < 5]
print(small[0])
print(len(small))
Na tela aparece 2, depois 2. O primeiro 2 é small[0], o número 2 que ficou. O segundo 2 é quantos números ficaram. 5 não está em small. small[1] seria 1, e este programa não o escreve.
📊 Dobrar, guardar ou parar
| Linha | O que você obtém |
|---|---|
| [n * 2 for n in prices] | uma lista nova 4, 10, 2, e prices fica |
| [n for n in prices if n < 5] | uma lista nova 2, depois 1, e 5 fica de fora |
| prices[0] | continua 2 |
| n * 2 for n in prices | o programa para, porque faltam os parênteses retos |
Os parênteses retos fazem parte da linha. Sem eles o programa para. O nome da frente e o nome depois de for têm de ser o mesmo. [n * 2 for price in prices] também para, porque n nunca recebe um número. price seria o nome que percorre, e a parte dobrada não o usa.
A página seguinte trata do nome de uma parada, quando o programa encontra um problema. Esta página só monta uma lista numa linha.
O que as duas listas mostram
- O que o primeiro programa escreve?
- Depois desse programa, o que é prices[0]?
- O que o segundo programa escreve?
- O que acontece se você escreve a linha do dobro sem os parênteses retos?
Uma lista nova, e a antiga fica
A primeira tela é 4, depois 10, depois 3. prices[0] continua 2. A segunda é 2, depois 2: o primeiro número que ficou, depois quantos ficaram. 5 ficou de fora. Sem os parênteses retos o programa para. O nome que você dobra e o nome depois de for são o mesmo. A página seguinte trata do nome de uma parada.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo