votaciones = [
{
"votante": "Juan",
"votos": [
{"participante": "Ana", "puntos": 5},
{"participante": "Pedro", "puntos": 3}
]
},
{
"votante": "Marta",
"votos": [
{"participante": "Ana", "puntos": 4},
{"participante": "Luis", "puntos": 2}
]
},
{
"votante": "Pedro",
"votos": [
{"participante": "Ana", "puntos": 3},
{"participante": "Luis", "puntos": 5}
]
}
]
# crear una función que nos devuelva una lista de participantes ordenada de
# más votos a menos votos
# para cada participante el número de votos que tiene
# ¿Puedo imprimir cada participante con su voto?
# Lo tengo que guardar en alguna parte: en un diccionario
def listaVotosRedundante(votaciones):
resultado = {}
for votacion in votaciones:
# print(votacion["votos"])
for voto in votacion["votos"]:
resultado[voto["participante"]] = 0
print(resultado)
for votacion in votaciones:
# print(votacion["votos"])
for voto in votacion["votos"]:
resultado[voto["participante"]] += voto["puntos"]
print(resultado)
return sorted(resultado,key=resultado.get,reverse=True)
def listaVotos(votaciones):
# Guardo los datos en un diccionario
resultado = {}
# recorro las votaciones
for votacion in votaciones:
# Dentro de las votaciones recorro los votos
for voto in votacion["votos"]:
# Si el participante ya lo tengo en el diccionario sumo los puntos
if voto["participante"] in resultado:
resultado[voto["participante"]] += voto["puntos"]
else:
# Si no está lo creo con los puntos de esta votación
# No puedo sumar los puntos si no existe de antes
resultado[voto["participante"]] = voto["puntos"]
# Ordeno las claves del diccionario (que son los participantes) por su valor (que son los votos)
return sorted(resultado, key=resultado.get, reverse=True)
print(listaVotos(votaciones))
# Crear una función que nos devuelva un diccionario con
# la clave el nombre del votante y el valor la media de sus votos
# recorrer todos los votantes
def mediaVotos(votaciones):
votantes={}
# al final de lo que ponga aquí en mi diccionario tendré
# el nombre de los votantes y de momento ponemos 0
for votacion in votaciones:
suma=0
# Sumo todos sus puntos
for voto in votacion["votos"]:
suma+=voto["puntos"]
# la media es la suma divido entre el número de votos
votantes[votacion["votante"]] = suma/len(votacion["votos"])
return votantes
print(mediaVotos(votaciones))