python - 如何在“for”循环中打印最大值?
问题描述
基本上,如果我在函数中引入字典,我需要让我的代码打印具有最高“promedio”变量值的元组。我被卡住了,因为我的代码只打印最新的结果而不是最高的,这里是:
def mejor_promedio_anual(datos: dict):
empleados = datos
for clave in empleados:
nombre_empleado = empleados[clave]["nombre_emp"]
primeras_tres:str = empleados[clave]["nombre_emp"][0:3]
cedula = int(empleados[clave]["cedula"])
digitos_cedula = [int(n) for n in str(cedula)]
pares_int = [x for x in digitos_cedula if x%2 == 0]
sumatoria_impares = sum([x for x in digitos_cedula if x%2 != 0])
multip_impares = "".join([str(num*sumatoria_impares) for num in pares_int])
#Codigo Empleado
codigo_unico:str = primeras_tres + multip_impares
ventas_totales = 0
for a in empleados[clave]["ventas"]:
for b in a.values():
for value in b.values():
ventas_totales+=value
promedio = round(ventas_totales/48, 2)
tupla = (codigo_unico, nombre_empleado, promedio)
return tupla
这是我的功能,我要添加一个字典,然后打印,就是这样:
datos = {
"Ju1234": {
"nombre_emp": 'Juan',
"cedula": '12345679',
"edad": '28',
"ventas": [
{
"enero": {
"camisas": 1500000,
"jeans": 2450000,
"vestidos": 800000,
"zapatos": 1300000
}
},
{
"febrero": {
"camisas": 134000,
"jeans": 600000,
"vestidos": 700000,
"zapatos": 900000
}
},
{
"marzo": {
"camisas": 1000000,
"jeans": 1400000,
"vestidos": 1600000,
"zapatos": 1800000
}
},
{
"abril": {
"camisas": 1900000,
"jeans": 2450000,
"vestidos": 1400000,
"zapatos": 300000
}
},
{
"mayo": {
"camisas": 1800000,
"jeans": 2750000,
"vestidos": 1200000,
"zapatos": 200000
}
},
{
"junio": {
"camisas": 1700000,
"jeans": 2000000,
"vestidos": 1900000,
"zapatos": 500000
}
},
{
"julio": {
"camisas": 1600000,
"jeans": 2780000,
"vestidos": 1500000,
"zapatos": 700000
}
},
{
"agosto": {
"camisas": 1500000,
"jeans": 2250000,
"vestidos": 1100000,
"zapatos": 200000
}
},
{
"septiembre": {
"camisas": 1100000,
"jeans": 2540000,
"vestidos": 1200000,
"zapatos": 400000
}
},
{
"octubre": {
"camisas": 1400000,
"jeans": 2120000,
"vestidos": 1400000,
"zapatos": 500000
}
},
{
"noviembre": {
"camisas": 1300000,
"jeans": 2230000,
"vestidos": 1700000,
"zapatos": 200000
}
},
{
"diciembre": {
"camisas": 1000000,
"jeans": 2480000,
"vestidos": 1800000,
"zapatos": 100000
}
}
]
},
"Ma9876": {
"nombre_emp": 'Martha',
"cedula": '987654321',
"edad": '25',
"ventas": [
{
"enero": {
"camisas": 980000,
"jeans": 4200000,
"vestidos": 940000,
"zapatos": 500000
}
},
{
"febrero": {
"camisas": 910000,
"jeans": 6400000,
"vestidos": 140000,
"zapatos": 480000
}
},
{
"marzo": {
"camisas": 920000,
"jeans": 4300000,
"vestidos": 240000,
"zapatos": 410000
}
},
{
"abril": {
"camisas": 980000,
"jeans": 4200000,
"vestidos": 540000,
"zapatos": 402000
}
},
{
"mayo": {
"camisas": 920000,
"jeans": 4700000,
"vestidos": 540000,
"zapatos": 980000
}
},
{
"junio": {
"camisas": 900000,
"jeans": 4600000,
"vestidos": 650000,
"zapatos": 290000
}
},
{
"julio": {
"camisas": 890000,
"jeans": 4200000,
"vestidos": 190000,
"zapatos": 720000
}
},
{
"agosto": {
"camisas": 130000,
"jeans": 9200000,
"vestidos": 960000,
"zapatos": 870000
}
},
{
"septiembre": {
"camisas": 210000,
"jeans": 5400000,
"vestidos": 180000,
"zapatos": 980000
}
},
{
"octubre": {
"camisas": 250000,
"jeans": 3400000,
"vestidos": 140000,
"zapatos": 450000
}
},
{
"noviembre": {
"camisas": 430000,
"jeans": 1500000,
"vestidos": 100000,
"zapatos": 420000
}
},
{
"diciembre": {
"camisas": 560000,
"jeans": 4500000,
"vestidos": 720000,
"zapatos": 400000
}
}
]
}
}
print(mejor_promedio_anual(datos))
如果执行此代码,它将打印元组('Mar20015010050','Martha',1602541.67),这是循环中的最后一个(第二个字典键),但我需要我的代码来打印具有最高“promedio”的元组",对于我添加到字典中的任何值,我该怎么做?
非常感谢!
解决方案
您可以:
- 在 for 循环之前创建一个空列表
- 将每个 tupla 结果附加到该列表中
- 然后使用
max(list, key=lambda t: t[2])
找到最大的(按元组中的第三个值排序),并返回
或者:
- 创建一个“current_largest_tupla”变量(占位符为 0)
- 在for循环中,检查每个结果是否大于最大值,如果是则替换
- 最后,返回该值
推荐阅读
- performance - mlcp 对不同的输入目录路径执行不同
- c# - 如何将长字符串拆分为字符,使其与给定的矩形匹配?
- jenkins - 有没有办法只使用名称而不是 node_name:port 来访问 Kubernetes 服务(外部)?
- python - 日期时间格式和计算
- ironpython - 如何使用 Spotfire Webplayer 中的 ironPython 脚本打开 Windows 资源管理器
- python - 在 Python-3 中返回原始内存
- c - 检查多个夹杂物的最佳方法
- bash - 如何使用 SED 或 AWK 在文件中打印两个模式之间的线条?
- r - 显示表格并根据滑块重新计算一列
- c++ - 模板化参数中仿函数的默认参数