# Crear una función a la que le pasemos una lista de números y nos devuelva
# una tupla con la suma de los números pares y de los impares:
# sumaparidad([1,2,3,4])->(6,4)
def sumaparidad(lista):
pares=0
impares=0
for numero in lista:
if numero%2==0:
pares+=numero
else:
impares+=numero
return (pares,impares)
def sumaparidad2(lista):
pares=[numero for numero in lista if numero%2==0]
impares=[numero for numero in lista if numero%2!=0]
return (sum(pares),sum(impares))
def sumaparidad3(lista):
return (sum([numero for numero in lista if numero%2==0]),sum([numero for numero in lista if numero%2!=0]))
print(sumaparidad3([1,2,3,4]))
milista=[1,1,1,1,1,2,2,2,2,2]
print(sumaparidad3(milista))
# Crear una función a la que le pasamos un diccionario con una lista
# de clientes y sus deudas y nos devuelva el total de deudas.
# La lista sería así:
#
clientes={"Ana":[100,500,3000],"Eva":[900,300,200]}
#
# totaldeuda(clientes)->5000
def totaldeuda(clientes):
total=0
for deudas in clientes.values():
total+=sum(deudas)
return total
def totaldeuda2(clientes):
return sum(sum(clientes.values(),[]))
print(totaldeuda2(clientes))
# sum(clientes.values(),[]) concatena diferentes listas en una lista
print(clientes.values())
print(sum(clientes.values(),[]))
lista1=[[1,2,3],[3,4,5],[7,8,9]]
lista4=sum(lista1,[])
print(lista4)
# Crea una función a la que le pasamos una lista de diccionarios
# que son alumnos con el siguiente formato:
#
clase=[{"nombre":"Ana","notas":[5,7,8]},{"nombre":"Pep","notas":[8,6,8]}]
#
# Y que nos devuelva la media total de las notas
#
# media_total(clase)->7
def media_total0(clase):
total_notas=0
numero_notas=0
for alumno in clase:
for nota in alumno["notas"]:
total_notas+=nota
numero_notas+=1
return round(total_notas/numero_notas,2)
def media_total(clase):
total_notas=[]
for alumno in clase:
total_notas+=alumno["notas"]
return round(sum(total_notas)/len(total_notas),2)
def media_total_ninja(clase):
# Anidación de compresión de listas
total_notas=[nota for alumno in clase for nota in alumno["notas"]]
return round(sum(total_notas) / len(total_notas), 2)
print(media_total_ninja(clase))