Python(27)求列表字典中某个参数的最大值

比较下面列表中的最大rps

lst = lst = [
      {'service': 'homepage-biz-custom', 'rps': '41.11', 'average_response_time': '3.0'},
      {'service': 'homepage-biz-custom', 'rps': '71.45', 'average_response_time': '2.0'},
      {'service': 'homepage-biz-custom', 'rps': '102.23', 'average_response_time': '2.5'}
       ]

期望结果:

{'service': 'homepage-biz-custom', 'rps': '102.23', 'average_response_time': '2.5'}

实现代码1 – 传统做法

vmax = {'rps':'0'}
for one in lst:
      if float(one["rps"]) >= float(vmax['rps']):
          vmax = one
print(vmax)

实现代码2 – max()函数+lambda表达式

max_ret = max(lst, key=lambda dic: float(dic['rps']))
print(max_ret)

详解与分析

1) 先取{'service': 'homepage-biz-custom', 'rps': '41.11', 'average_response_time': '3.0'},以{'service': 'homepage-biz-custom', 'rps': '41.11', 'average_response_time': '3.0'}为参传入匿名函数作为dic,经dic['rps']处理得41.112) 再取{'service': 'homepage-biz-custom', 'rps': '71.45', 'average_response_time': '2.0'},以{'service': 'homepage-biz-custom', 'rps': '71.45', 'average_response_time': '2.0'}为参传入匿名函数作为dic,经dic['price']处理得71.453) 最后取 {'service': 'homepage-biz-custom', 'rps': '102.23', 'average_response_time': '2.5'},以 {'service': 'homepage-biz-custom', 'rps': '102.23', 'average_response_time': '2.5'}为参传入匿名函数作为dic,经dic['price']处理得102.234) 集中比较41.11,71.45,102.23,102.23最大,返回102.23对应的参数dic,即 {'service': 'homepage-biz-custom', 'rps': '102.23', 'average_response_time': '2.5'}5) 因为返回是字典,所以可能乱序。

不论匿名函数怎么处理参数,返回的不是处理后的结果,而是结果对应的参数本身,即dic
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值