1
resposta

Resolução de Atividades - "08 Hora da prática: dicionários"

1 - Crie um dicionário representando informações sobre uma pessoa, como nome, idade e cidade.

usuario = [{"nome": "Zoe Anderson", "idade": 45, "cidade": "San Francisco - California"}]

print (usuario)

2 - Utilizando o dicionário criado no item 1:

  • Modifique o valor de um dos itens no dicionário (por exemplo, atualize a idade da pessoa);
  • Adicione um campo de profissão para essa pessoa;
  • Remova um item do dicionário.
usuario["idade"] = 35
usuario["profissao"] = "Capitã da Polícia Militar"
del usuario["cidade"]
print (usuario)

3 - Crie um dicionário que relacione os números de 1 a 5 aos seus respectivos quadrados.

lista_quadrados = [{"quadrado_A": 1}, 
                   {"quadrado_B": 2},
                   {"quadrado_C": 3},
                   {"quadrado_D": 4},
                   {"quadrado_E": 5}]

for indice in lista_quadrados:

    print (indice)

4 - Crie um dicionário e verifique se uma chave específica existe dentro desse dicionário.

dicionario = {"linha": 1, "cor": "azul", "direcao": "norte-sul"}

usuario_resposta = input ("Digite a chave a ser procurada no dicionário: ")



if usuario_resposta in dicionario:

    print ("Existe")

else:

     print ("Não existe")

5 - Escreva um código que conte a frequência de cada palavra em uma frase utilizando um dicionário.

frase = """No meio do caminho tinha uma pedra
Tinha uma pedra no meio do caminho
Tinha uma pedra
No meio do caminho tinha uma pedra

Nunca me esquecerei desse acontecimento
Na vida de minhas retinas tão fatigadas
Nunca me esquecerei que no meio do caminho
Tinha uma pedra
Tinha uma pedra no meio do caminho
No meio do caminho tinha uma pedra"""

contagem_palavras = {}
palavras_divididas = frase.split()

for palavra_indice in palavras_divididas:
    contagem_palavras[palavra_indice] = contagem_palavras.get(palavra_indice, 0) + 1

print(contagem_palavras)

Nota: Precisei ver as respostas na 2, 3, e 5. Na 5, usei o Chat GPT porque não sabia como separar o poema

1 resposta

Oi, Victor.

Que bom ver você praticando e buscando evoluir nos estudos de Python. É perfeitamente normal consultar resoluções ou usar ferramentas de apoio quando encontramos desafios mais complexos, como a lógica de contagem de palavras. Esse é um passo importante do aprendizado.

Analisando suas soluções, notei alguns pontos técnicos que podem te ajudar a entender melhor como os dicionários funcionam na prática, especialmente em relação às listas.

1 e 2. Diferença entre Dicionário e Lista de Dicionários:

No primeiro exercício, você criou uma estrutura assim: usuario = [{...}].
Os colchetes [] indicam uma lista, e as chaves {} dentro dela indicam o dicionário.

  • O que aconteceu: Ao colocar o dicionário dentro de uma lista, o Python entende que usuario é uma lista que contém um único item (o dicionário).
  • Consequência no item 2: Quando você tentou fazer usuario["idade"] = 35, o Python provavelmente retornou um erro de tipo (TypeError), pois listas não aceitam chaves de texto, apenas índices numéricos (como usuario[0]).

Sugestão:
Para trabalhar diretamente com os dados da pessoa, declare apenas com as chaves:

usuario = {"nome": "Zoe Anderson", "idade": 45, "cidade": "San Francisco"}

3. Relacionando números aos quadrados:

O objetivo era criar uma relação matemática entre uma chave (o número) e um valor (o quadrado dele). Na sua solução, você criou uma lista com vários dicionários independentes.

Uma forma de resolver isso de maneira direta é:

quadrados = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# Ou usando um laço de repetição para automatizar:
lista_quadrados = {x: x**2 for x in range(1, 6)}

4 e 5. Lógica de busca e contagem:

Seus códigos nos itens 4 e 5 estão muito bons. No item 5, você utilizou o método .get(), que é uma excelente escolha. Ele tenta buscar o valor de uma palavra e, se ela ainda não existir no dicionário, ele assume o valor 0, permitindo que você some +1 logo em seguida.

Dica sobre o poema: O método .split() que você usou separa as palavras pelos espaços em branco. Para deixar a contagem ainda mais precisa no futuro, você pode transformar tudo em minúsculas com .lower() para que "No" e "no" sejam contados como a mesma palavra.

Continue explorando essas estruturas, pois elas aparecem muito no dia a dia da programação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!