Médio Python

Dicionário de comprimentos

Enunciado

Dada a lista palavras = ['python', 'java', 'c', 'javascript'], crie um dict comprehension que mapeie cada palavra ao seu comprimento. Imprima o dicionário resultante.

Requisitos

  • Usar dict comprehension.
  • As chaves devem ser as palavras.
  • Os valores devem ser os comprimentos das palavras.

Código inicial

palavras = ['python', 'java', 'c', 'javascript']
# Crie o dicionário com dict comprehension
comprimentos = {}
print(comprimentos)

Saída esperada

{'python': 6, 'java': 4, 'c': 1, 'javascript': 10}
Ver dica

A expressão é {palavra: len(palavra) for palavra in palavras}.

Mostrar solução
palavras = ['python', 'java', 'c', 'javascript']
# Dict comprehension: chave = palavra, valor = len(palavra)
comprimentos = {palavra: len(palavra) for palavra in palavras}
print(comprimentos)

Passo a passo

  1. A lista palavras contém as strings que serão processadas.
  2. O for palavra in palavras percorre cada elemento da lista.
  3. Para cada palavra, a expressão palavra: len(palavra) cria um par chave-valor.
  4. O dict comprehension coleta todos os pares no dicionário comprimentos.
  5. print mostra o dicionário final.

Por que funciona

O dict comprehension constrói um dicionário diretamente a partir de um iterável, evitando a criação de um dicionário vazio e a inserção manual com comprimentos[palavra] = len(palavra). É mais conciso e expressivo.

Erros comuns

  • Esquecer os dois-pontos entre chave e valor: {palavra, len(palavra) for ...} cria um conjunto de tuplas, não um dicionário.
  • Usar len sem parênteses: {palavra: len for ...} armazena a função, não o comprimento.
  • Repetir chaves: se houver palavras duplicadas, a última sobrescreve as anteriores.

Outra forma de resolver

Com loop for:

comprimentos = {}
for palavra in palavras:
    comprimentos[palavra] = len(palavra)
print(comprimentos)

A compreensão é preferível pela clareza.

Saída esperada

{'python': 6, 'java': 4, 'c': 1, 'javascript': 10}