Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
qg594764
Banca
Quadrix
Órgão
CFBio
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas
Acerca da linguagem Python e dos conceitos sobre desenvolvimento web, julgue o item a seguir.Em Python, um comando destinado à manipulação eficiente de coleções de dados, por exemplo, é o comando result = map(lambda x, y: x * y, [1, 2, 3], [4, 5]), o qual gera todas as permutações possíveis dos elementos fornecidos sem erros.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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: função map e a falsa ideia de permutações

Gabarito: E — ERRADO. A afirmação está incorreta porque o comando map(lambda x, y: x * y, [1, 2, 3], [4, 5]) não gera permutações, mas sim o produto elemento a elemento das duas listas, combinando o primeiro com o primeiro, o segundo com o segundo, e assim por diante. Como as listas têm tamanhos diferentes (3 e 2), o map para no fim da lista mais curta, retornando apenas [4, 10] — sem qualquer erro e sem qualquer permutação.

A função map é uma ferramenta clássica da programação funcional em Python. Ela aplica uma função a cada item de um ou mais iteráveis, de forma paralela. Quando recebe múltiplos iteráveis, o map consome um elemento de cada um por vez, até que o menor deles se esgote. No exemplo, a função lambda x, y: x * y recebe x da primeira lista e y da segunda: na primeira iteração, 1 * 4 = 4; na segunda, 2 * 5 = 10. Como a segunda lista só tem dois elementos, o processo para aí — o 3 da primeira lista é ignorado. O resultado é um objeto map, que pode ser convertido em lista: [4, 10].

O conceito de permutação é totalmente diferente: permutar significa rearranjar os elementos de um conjunto, gerando todas as ordens possíveis. Para gerar permutações em Python, usa-se itertools.permutations, não map. Por exemplo, list(itertools.permutations([1, 2, 3])) geraria todas as 6 ordenações possíveis de três elementos. A banca, ao afirmar que o map gera "todas as permutações possíveis", mistura dois conceitos distintos da programação funcional: a aplicação paralela (map) e a geração de arranjos (permutations).

Outro ponto que merece atenção: o enunciado diz que o comando gera as permutações "sem erros". De fato, o código não lança exceção — ele simplesmente ignora o elemento excedente da lista maior. Isso é um comportamento padrão do map em Python, que não valida se os iteráveis têm o mesmo tamanho. Portanto, a execução é silenciosa e bem-sucedida, mas o resultado não tem nada a ver com permutações.

NÃO CAIA NESSA!

A banca explora a confusão entre map (aplicação paralela elemento a elemento) e itertools.permutations (geração de todas as ordenações). O candidato que sabe que map combina listas pode até acertar que o resultado é [4, 10], mas a afirmação de que isso gera "permutações" é o erro central. Fique atento: map nunca gera permutações — ele apenas aplica uma função aos elementos correspondentes dos iteráveis fornecidos.

1Combina elemento a elemento
2Para no menor iterável
3Resultado: [4, 10]
4Não gera permutações
5permutations (itertools)
Gera todas as ordenações
Ex.: list(permutations([1,2,3]))
map (aplicação paralela)
LEVELsoulevel.com.br
map (aplicação paralela): Combina elemento a elemento; Para no menor iterável; Resultado: [4, 10]; Não gera permutações; permutations (itertools) (Gera todas as ordenações, Ex.: list(permutations([1,2,3])))

Item — ❌ ERRADO

A afirmação está incorreta por dois motivos: (1) o map não gera permutações, e sim o produto elemento a elemento; (2) o resultado seria [4, 10], não uma lista de permutações. O código, embora válido e sem erros de execução, não faz o que o enunciado descreve. Para gerar permutações, seria necessário usar itertools.permutations, como em list(itertools.permutations([1, 2, 3])). A banca troca o conceito de aplicação paralela de função pelo de rearranjo de elementos — uma armadilha clássica para quem decora a sintaxe sem entender a semântica.

Gabarito: E — ERRADO.

Link permanente: /questoes/qg594764