You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python一行代码获取字典中各值列表首元素的最大值?

一行代码实现字典中排序键对应列表首元素的最大值

当然可以!你完全可以用Python的生成器表达式结合内置函数把这段循环代码简化成一行,既简洁又高效。

先回顾一下你原来的逻辑:

对字典的键进行排序,遍历每个排序后的键,取出对应列表的第0个元素存入临时列表,最后求这个列表的最大值

对应的一行代码写法如下:

max(soilLayer[name][0] for name in sorted(soilLayer.keys()))

代码解释:

  • sorted(soilLayer.keys()):和你原来的逻辑一致,先对字典的键进行排序
  • soilLayer[name][0]:遍历排序后的每个键,取出对应列表的首元素(也就是你代码里position=0对应的元素)
  • 整个表达式是一个生成器表达式,它会按需生成每个元素,不需要像原来那样创建额外的height列表占用内存
  • 最后直接把生成器表达式传给max()函数,一步得到最大值

如果你用的是Python 3.7及以上版本,其实sorted(soilLayer)就等价于sorted(soilLayer.keys()),所以代码还可以再简化一点:

max(soilLayer[k][0] for k in sorted(soilLayer))

这样写既保留了你原来代码的排序逻辑,又把整个流程压缩成了一行,可读性也不会打折扣~

内容的提问来源于stack exchange,提问作者Abe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:34:19