Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg093649
Banca
FGV
Órgão
SEDUC-SP
Ano
2024
Nível
Superior
Cargo
Professor de Ensino Fundamental e Médio (Educação Profissional) - Tecnologia da Informação
O trecho de código a seguir, escrito em linguagem Python, ordena a lista nomeada minha_lista. Analise-o e indique qual será a ordem de exibição dos nomes da lista ao final da execução de sua ordenação.minha_lista = ['Jair', 'Samuel', 'Jailton', 'Marcos', 'Pedro'] minha_lista.sort(key=len) # a função len "número de caracteres"# será aplicada a cada elemento da listaprint(minha_lista)A ordem de saída será
  1. A['Samuel', 'Pedro', 'Jair', 'Jailton', 'Marcos']
  2. B['Jair', 'Pedro', 'Samuel', 'Marcos', 'Jailton']
  3. C['Pedro', 'Jair', 'Jailton', 'Samuel', 'Marcos']
  4. D['Jair', 'Jailton', 'Samuel', 'Marcos', 'Pedro']
  5. E['Jair', 'Samuel', 'Jailton', 'Marcos', 'Pedro']
Revelar gabarito e comentário

GabaritoB — ['Jair', 'Pedro', 'Samuel', 'Marcos', 'Jailton']

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

Ordenação de listas em Python com key

Gabarito: letra B. A função sort(key=len) ordena a lista com base no comprimento de cada string (número de caracteres). A ordem resultante, do menor para o maior comprimento, é: 'Jair' (4), 'Pedro' (5), 'Samuel' e 'Marcos' (ambos 6, mantendo a ordem original), 'Jailton' (7). Portanto, a saída é ['Jair', 'Pedro', 'Samuel', 'Marcos', 'Jailton'].

A banca testa o conhecimento do parâmetro key do método sort() em Python, que permite ordenar os elementos com base em uma função aplicada a cada um. No caso, len retorna o número de caracteres de cada string.

  1. 1Lista original
  2. 2Aplica len a cada item
  3. 3Ordena por comprimento (crescente)
  4. 4Estável: mesmo len mantém ordem
  5. 5Resultado: ['Jair', 'Pedro', 'Samuel', 'Marcos', 'Jailton']
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Lista ['Samuel', 'Pedro', 'Jair', 'Jailton', 'Marcos']. A ordem está incorreta porque coloca Samuel (6 letras) antes de Jair (4) e Pedro (5). O comprimento não foi respeitado.

Alternativa B — ✅ Correta ⟵ GABARITO

Exatamente a ordem esperada: 'Jair' (4), 'Pedro' (5), 'Samuel' (6), 'Marcos' (6), 'Jailton' (7). Para strings de mesmo comprimento, a ordenação é estável, preservando a ordem original (Samuel antes de Marcos).

Alternativa C — ❌ Incorreta

['Pedro', 'Jair', 'Jailton', 'Samuel', 'Marcos']. Pedro (5) aparece antes de Jair (4), violando a ordenação crescente.

Alternativa D — ❌ Incorreta

['Jair', 'Jailton', 'Samuel', 'Marcos', 'Pedro']. Jailton (7) aparece antes de Samuel (6) e Marcos (6), e Pedro (5) está no final.

Alternativa E — ❌ Incorreta

['Jair', 'Samuel', 'Jailton', 'Marcos', 'Pedro']. Esta é a lista original, sem ordenação. A execução do sort modifica a lista, então a saída não será a original.

PEGA ESSA DICA!

Lembre-se que o método sort() é in-place (altera a lista original) e aceita o parâmetro key para ordenação personalizada. O padrão é crescente. Para ordem decrescente, use reverse=True. A função len é frequentemente utilizada para ordenar strings por tamanho.

Gabarito: letra B.

Link permanente: /questoes/fg093649