Carregando...

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.

4, depois 10, e prices ainda tem três números

python
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.

o primeiro número que ficou, depois quantos ficaram

python
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

  1. O que o primeiro programa escreve?
  2. Depois desse programa, o que é prices[0]?
  3. O que o segundo programa escreve?
  4. 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

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
4
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 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