Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Explicação da questão 9 (desafio)

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.

1 resposta
solução!

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:
      • Criar uma lista que contém todas as ocorrências daquele estado.
      • Usamos um list comprehension: [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).
    • Para cada í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!

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