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

Python字典max函数key参数与取值逻辑相关问题求助

代码参考

square = {2: 4, -3: 9, -1: 1, -2: 4}
key1 = max(square)
print(key1) # 2
key2 = max(square, key = lambda k: square[k])
print(key2) # -3
key3 = square[key2]
print(key3) # 9

Q1 解答

  • 首先明确基础逻辑:Python中直接迭代字典时,默认遍历的是字典的所有键,max(square)没有指定key参数时,会直接比较所有键的数值大小,2是所有键里最大的,所以返回2,也就是你看到的key1的输出结果。
  • square[k]的作用是取字典square中键k对应的的值。max的key参数作用是指定「计算比较值的规则」:你传入lambda k: square[k]时,max会把每个键k对应的值拿出来做比较,几个键对应的值分别是2→4、-3→9、-1→1、-2→4,最大的值是9,对应的键是-3,所以key2输出-3。
  • 你把lambda里的k移除后,lambda表达式变成lambda k: square,也就是不管传入的键k是什么,都返回整个square字典对象,所有键对应的比较值都是同一个对象,max找不到更大的比较值,就会默认返回原始键里最大的那个,结果自然和key1一致。

Q2 解答

key2的输出结果是-3,square[key2]就是字典的取值操作:用键-3去字典square里找对应的值,字典里-3对应的value就是9,所以key3最终输出9。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:39:01