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
- A lista
palavrascontém as strings que serão processadas. - O
for palavra in palavraspercorre cada elemento da lista. - Para cada palavra, a expressão
palavra: len(palavra)cria um par chave-valor. - O dict comprehension coleta todos os pares no dicionário
comprimentos. printmostra 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
lensem 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}