-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsegundoExercicio.py
More file actions
36 lines (26 loc) · 1.02 KB
/
Copy pathsegundoExercicio.py
File metadata and controls
36 lines (26 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Você recebe uma lista de tuplas contendo (nome, nota) de alunos.
Crie um programa que:
• transforme os dados em um dicionário
• se o aluno já existir, calcule a média das notas recebidas
• exiba os alunos em ordem crescente de média
Exemplo de entrada:
[("Ana", 8), ("João", 7), ("Ana", 10), ("Bia", 9)]"""
lista = [("Ana", 8), ("João", 7), ("Ana", 10), ("Bia", 9)]
notas_agrupadas = {}
for nome, nota in lista:
if nome in notas_agrupadas:
notas_agrupadas[nome].append(nota)
else:
notas_agrupadas[nome] = [nota]
#print(notas_agrupadas)
medias_finais = {}
for nome, lista_de_notas in notas_agrupadas.items():
soma_total = sum(lista_de_notas)
contagem = len(lista_de_notas)
media=soma_total/contagem
medias_finais[nome]=media
#print(medias_finais)
lista_ordem = list(medias_finais.items())
alunos_ordem = sorted(lista_ordem,key=lambda item: item[1]) #key: ordenar a lista não pelo primeiro elemento
for nome, media in alunos_ordem:
print(f"Aluno: {nome} Média: {media}")