Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2025

ProgramaçãoLinguagens de programação
Código
fg116624
Banca
FGV
Órgão
PC-MG
Ano
2025
Nível
Superior
Cargo
Perito Criminal - Área II
Python possui recursos específicos que facilitam a programação, como o uso de list comprehensions.Com base nisso, assinale a opção que indica a principal vantagem do uso de list comprehension em Python em comparação com um loop for convencional para criar listas.
  1. AÉ exclusivamente mais rápido em todas as situações, devido à sua implementação interna otimizada.
  2. BResulta sempre em uma sintaxe mais concisa e legível quando comparado a um loop for convencional.
  3. CSó funciona para números inteiros, enquanto o loop for pode criar listas a partir de qualquer sequência.
  4. DImpede o uso de condições nos laços, enquanto os loops for permitem maior flexibilidade.
  5. EÉ obrigatório no Python para criar listas no caso de grandes quantidades de dados.
Revelar gabarito e comentário

GabaritoB — Resulta sempre em uma sintaxe mais concisa e legível quando comparado a um loop for convencional.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Python – List Comprehension vs Loop For

Gabarito: letra B. A principal vantagem do uso de list comprehension em Python é a sintaxe mais concisa e legível em comparação com um loop for convencional. Embora list comprehensions sejam amplamente utilizadas por sua expressividade, elas não são exclusivamente mais rápidas, não possuem limitações de tipo, permitem condições e não são obrigatórias.

NÃO CAIA NESSA!

A alternativa A afirma que list comprehension é "exclusivamente mais rápido em todas as situações". Isso é uma generalização indevida — na prática, o desempenho pode variar conforme o caso; loops for podem ser mais eficientes em cenários com operações complexas ou grandes volumes de dados. O candidato deve evitar acreditar que list comprehension é sempre a opção mais rápida.

Alternativa A — ❌ Incorreta

Afirma que list comprehension é "exclusivamente mais rápido em todas as situações". Embora a implementação interna seja otimizada, não é uma verdade absoluta; em alguns casos (ex.: laços com efeitos colaterais ou processamento pesado), um loop for pode ter desempenho similar ou superior. O erro é a generalização abusiva.

Alternativa B — ✅ Correta ⟵ GABARITO

A descrição "sintaxe mais concisa e legível" reflete a principal vantagem didática e prática das list comprehensions. Em comparação com um loop for tradicional, a mesma lógica pode ser expressa em uma única linha, reduzindo a verbosidade e melhorando a clareza do código.

Alternativa C — ❌ Incorreta

Afirma que list comprehension "só funciona para números inteiros". Na realidade, list comprehensions funcionam com qualquer iterável (listas, strings, tuplas, geradores, etc.) e podem produzir listas de qualquer tipo de elemento. Não há restrição a inteiros.

Alternativa D — ❌ Incorreta

Afirma que list comprehension "impede o uso de condições nos laços". Na verdade, list comprehensions suportam cláusulas if para filtrar elementos (ex.: [x for x in range(10) if x % 2 == 0]). Portanto, são tão flexíveis quanto loops for em termos de condições.

Alternativa E — ❌ Incorreta

Afirma que list comprehension é "obrigatório no Python para criar listas no caso de grandes quantidades de dados". Não há obrigatoriedade; list comprehensions são apenas uma ferramenta conveniente. Para grandes volumes, podem ser usados loops for, geradores ou outras abordagens. A escolha depende do contexto e da legibilidade.

PEGA ESSA DICA!

Ao estudar Python, lembre-se: list comprehension é preferível quando se deseja transformar/filtrar rapidamente um iterável em uma lista de forma clara. Porém, para lógicas complexas ou muitos efeitos colaterais, o loop for tradicional ainda é a melhor opção. Pratique a conversão entre as duas formas para fixar o conceito.

Gabarito: letra B.

Link permanente: /questoes/fg116624