Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida sobre como transformar a minha resposta da questão 10 para o formato de Dict Comprehension

Olá,

A minha solução para a questão 10 está apresentada abaixo, entretanto, não consegui escrevê-la no formato de Dict Comprehension. É possível transformá-la para o formato de Dict Comprehension? Como fazer?

estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']
coluna = ["MG", "ES", "SP", "RJ"] # Criação da lista contendo as chaves do dicionário

dicionario = {} # Criação do dicionário:
for estado in estados: # Iteração pela lista dos estados verificando cada item da lista
  for item in coluna: # Iteração pela lista da coluna (que representa as as chaves do dicionário) verificando cada item da lista
     if estado == item: # Verificação da existência de igualdade entre os itens das listas dos estados e das colunas
      dicionario[item] = estados.count(item) # Contagem de cada tipo de item contido na lista estado
print(dicionario)

Obrigada.

2 respostas
solução!

Boa noite Marina! Tudo bem com você?

No seu caso, queremos contar quantas vezes cada estado aparece na lista estados e armazenar isso em um dicionário. Exemplo com o uso do dict comprehension:

estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']
coluna = ["MG", "ES", "SP", "RJ"]

dicionario = {estado: estados.count(estado) for estado in coluna}
print(dicionario)

Resultado:

{'MG': 7, 'ES': 6, 'SP': 8, 'RJ': 2}

Neste código, {estado: estados.count(estado) for estado in coluna} cria um dicionário onde cada estado na lista coluna é uma chave, e o valor associado é a contagem de quantas vezes esse estado aparece na lista estados.

Ícone de sugestão Para saber mais:

O dict comprehension segue a estrutura {chave: valor for elemento in iterável}. A dica principal é ir por partes:

1️⃣ Comece pensando na chave e no valor do dicionário. No seu caso, a chave é o estado da lista coluna, e o valor é a contagem desse estado na lista estados.

2️⃣ Transforme isso em uma estrutura de dicionário. Como queremos um dicionário onde cada estado da coluna seja uma chave e seu valor seja a contagem em estados, usamos:

{estado: estados.count(estado) for estado in coluna}

3️⃣ Leia em voz alta para entender a lógica. Isso pode ajudar: "Para cada estado na lista coluna, associe a ele o número de vezes que aparece em estados."

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Olá Rafael,

Muito obrigada pelo retorno.