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
在这里插入图片描述

你可能感兴趣的:(java,github,信息可视化,python)