Considerando que é preciso criar uma lista em Python que co...

Próximas questões
Com base no mesmo assunto
Q3699135 Programação
Considerando que é preciso criar uma lista em Python que contenha os quadrados dos números de 1 a 10 usando uma abordagem de uma linha, assinale a alternativa que apresenta corretamente a abordagem de linha para criar a lista desejada.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Tema central: A questão aborda o conceito de compreensão de listas (list comprehension) em Python, uma técnica essencial para criar listas de forma rápida e eficiente, especialmente útil em situações em que precisamos construir coleções de elementos a partir de padrões definidos por expressões matemáticas ou lógicas.

Explicação didática: A compreensão de listas permite criar listas a partir de uma expressão aplicada a cada elemento de um iterável. Sua sintaxe é [expressão for variável in iterável]. Essa técnica promove clareza de código e eficiência, sendo amplamente indicada por obras como “Python Fluente”, de Luciano Ramalho.

Para gerar uma lista com os quadrados dos números de 1 a 10 em uma linha, basta utilizar a expressão [x**2 for x in range(1, 11)]. Aqui, x**2 calcula o quadrado de cada valor de x no intervalo de 1 a 10 (range(1, 11)).

Justificativa da Alternativa Correta:
Alternativa A: [x**2 for x in range(1, 11)]
Esta alternativa utiliza corretamente a compreensão de listas para gerar, em uma única linha, os quadrados de 1 a 10, resultando em uma lista direta e imediatamente utilizável.

Análise das Alternativas Incorretas:

B) map(lambda x: x**2, range(1, 11))
Embora aplique o cálculo desejado, retorna um objeto iterador do tipo map, não uma lista. Seria necessário converter o resultado com list() para obter o formato requerido.

C) for x in range(1, 11): x**2
Apenas executa a expressão para cada valor de x, mas não armazena nem retorna os resultados em uma lista.

D) (x**2 for x in range(1, 11))
Esta forma cria um gerador, não uma lista. Um gerador é útil para economizar memória, mas não é o tipo de estrutura de dados solicitado.

E) {x**2 for x in range(1, 11)}
Aqui é criada uma compreensão de conjunto (set), ou seja, retorna um conjunto, não uma lista, o que não atende ao pedido do enunciado.

Estrategicamente, fique atento ao tipo de estrutura criada por cada sintaxe: parênteses (()) para geradores, chaves ({}) para conjuntos, colchetes ([]) para listas. Cuidado com pegadinhas como ausência do list() com map e aparente semelhança visual entre geradores, listas e conjuntos.

Gabarito: A

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo