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

[Sugestão] 03_Estrutura_de_dados_Python _ Hora da Prática 08/09/10

## 8. Um e-commerce possui as informações de id de venda, quantidade vendida e preço do produto divididos nas seguintes listas: O e-commerce precisa estruturar esses dados em uma tabela contendo o valor total da venda, que é obtida multiplicando a quantidade pelo preço unitário. Além disso, a tabela precisa conter um cabeçalho indicando as colunas: 'id', 'quantidade', 'preco' e 'total'. Crie uma lista de tuplas em que cada tupla tenha id, quantidade, preço e valor total, na qual a primeira tupla é o cabeçalho da tabela.
id = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
quantidade = [15, 12, 1, 15, 2, 11, 2, 12, 2, 4]
preco = [93.0, 102.0, 18.0, 41.0, 122.0, 14.0, 71.0, 48.0, 14.0, 144.0]

# Calcular o valor total de cada produto
total = [quantidade[i] * preco[i] for i in range(len(id))]
# Converter total em tupla
total = tuple(total)

# Criar uma lista de tuplas com os dados dos produtos
idvendas = list(zip(id, quantidade, preco, total))

# Imprimir os dados dos produtos e vendas em R$
for id, quantidade, preco, total in idvendas:
    print(f"ID: {id}, Quantidade: {quantidade}, Preço: R${preco:.2f}, Total: R$ {total:.2f}")

# Calcular o total de vendas e imprimir
total_vendas = []
for i in range(len(idvendas)):
    total_vendas.append(idvendas[i][3])
total_vendas = sum(total_vendas)
print(f"Total de vendas: R$ {total_vendas:.2f}")
## 9. Uma empresa possui filiais espalhadas nos Estados da região Sudeste do Brasil. Em uma das tabelas de cadastro das filiais há uma coluna contendo a informação de qual é o Estado a que pertence:
estados = ['SP', 'ES', 'MG', 'MG', 'SP', 'MG', 'ES', 'ES', 'ES', 'SP', 'SP', 'MG', 'ES', 'SP', 'RJ', 'MG', 'RJ', 'SP', 'MG', 'SP', 'ES', 'SP', 'MG']

# Contando as filiais por estado
filiais = {estado: estados.count(estado) for estado in set(estados)}
print(filiais)
## 10. Nessa mesma tabela de cadastro de filiais, há uma coluna com as informações da quantidade de pessoas colaboradoras e o(a) gestor(a) gostaria de ter um agrupamento da soma dessas pessoas para cada estado. As informações contidas na tabela são: A partir da lista de tuplas, crie um dicionário em que as chaves são os nomes dos Estados únicos e os valores são as listas com o número de colaboradores(as) referentes ao Estado. Crie também um dicionário em que as chaves são os nomes dos Estados e os valores são a soma de colaboradores(as) por Estado.
funcionarios = [('SP', 16), ('ES', 8), ('MG', 9), ('MG', 6), ('SP', 10), ('MG', 4), ('ES', 9), ('ES', 7), ('ES', 12), ('SP', 7), ('SP', 11), ('MG', 8), ('ES', 8), ('SP', 9), ('RJ', 13), ('MG', 5), ('RJ', 9), ('SP', 12), ('MG', 10), ('SP', 7), ('ES', 14), ('SP', 10), ('MG', 12)]

# Dicionário para armazenar os funcionários por Estado e sua respectiva filial
filiais = {estado: [funcionario for estado_funcionario, funcionario in funcionarios if estado_funcionario == estado] for estado, _ in funcionarios}

# Funcionários por Estado e Filial
print('Funcionários por Estado e Filial:')
for estado, funcionarios in filiais.items():
    print(f'{estado}: {funcionarios}')

# Somas o total de funcionários por filial
soma_funcionarios = {estado: sum(funcionarios) for estado, funcionarios in filiais.items()}

# Imprimindo o dicionário de soma de todos os funcionários por filial
print('\nRESUMO:')
for estado, soma in soma_funcionarios.items():
    print(f'{estado}: {soma}')
1 resposta
solução!

Oi, Marinaldo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código mostra uma boa organização das estruturas de dados e uso correto das funções como zip, sum e dict comprehension.Parabéns!

Uma dica interessante para o futuro é usar o método setdefault para organizar os colaboradores por estado sem sobrescrever dados repetidos. Veja este exemplo:


func_por_estado = {}
for estado, qtd in funcionarios:
    func_por_estado.setdefault(estado, []).append(qtd)

Esse código cria um dicionário onde a chave é o estado e o valor é uma lista com as quantidades de colaboradores.

Qualquer dúvida que surgir, compartilhe no fórum.

Abraços e bons estudos!

Alura

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