Por gentileza, seria possível ter uma explicação detalhada e passo a passo de como foi resolvida a questão 9? Quebrei um pouco a cabeça e ainda não entendi.
Por gentileza, seria possível ter uma explicação detalhada e passo a passo de como foi resolvida a questão 9? Quebrei um pouco a cabeça e ainda não entendi.
Olá, Daniel, tudo bem?
Essa questão pede para você criar um dicionário que conta quantas vezes cada Estado aparece na lista de filiais.
Passo 1: Criar uma lista sem estados repetidos
A primeira etapa é garantir que você tenha uma lista contendo cada estado apenas uma vez, para não haver duplicatas. Isso é feito utilizando o set()
, que é uma estrutura de dados que remove os elementos duplicados:
estados_unicos = list(set(estados))
O set(estados)
elimina os valores duplicados. E o list(set(estados))
converte o conjunto de volta em uma lista, para podermos manipulá-la depois.
A lista estados_unicos
agora conterá:
['MG', 'RJ', 'SP', 'ES']
Passo 2: Criar uma lista de listas para cada estado
Agora o objetivo é criar uma lista de listas, onde cada uma dessas sublistas terá apenas os estados repetidos de um único estado. O loop percorrerá cada estado da lista estados_unicos
e cria uma sublista contendo apenas as ocorrências daquele estado na lista original estados.
lista_de_listas = []
for estado in estados_unicos:
lista = [uf for uf in estados if uf == estado]
lista_de_listas.append(lista)
O código está fazendo o seguinte:
for estado in estados_unicos:
: para cada estado único (ou seja, 'MG', 'RJ', 'SP' e 'ES'), o código vai:[uf for uf in estados if uf == estado]
. Ele verifica cada estado na lista original estados
e, se for igual ao estado atual.lista_de_listas.append(lista
): adiciona a lista criada (sublista) dentro da variável lista_de_listas
.O resultado fica:
[['MG', 'MG', 'MG', 'MG', 'MG', 'MG'],
['RJ', 'RJ'],
['SP', 'SP', 'SP', 'SP', 'SP', 'SP', 'SP'],
['ES', 'ES', 'ES', 'ES', 'ES']]
Passo 3: Criar o dicionário final
O objetivo é que a chave seja o nome do estado e o valor seja a quantidade de vezes que esse estado apareceu. A função len()
conta quantos elementos existem em cada sublista. Aqui é onde usamos o dict comprehension
para criar o dicionário.
contagem_valores = {estados_unicos[i]: len(lista_de_listas[i]) for i in range(len(estados_unicos))}
Neste código aconte o seguinte:
for i in range(len(estados_unicos))
: percorre os índices dos estados únicos (de 0 a 3 neste caso).índice i
, ele cria uma chave no dicionário onde:estados_unicos[i]
é a chave, ou seja, o nome do estado.len(lista_de_listas[i])
é o valor, ou seja, o número de vezes que o estado apareceu na lista original (que é simplesmente o tamanho da sublista correspondente).O resultado será:
{'MG': 6, 'RJ': 2, 'SP': 7, 'ES': 5}
Esse processo de "quebrar em partes" a lista original e criar o dicionário final é bastante comum e ajuda a organizar a informação de maneira clara.
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!