python 中的最大迭代项和关键属性

max iteritems and key attribute in python

考虑以下字典 gh,为什么我得到带有和不带有键属性的不同输出。关键属性在这里做什么?

gh = {'LF': 11483, 'C': 10886, 'DH': 7558, 'SS': 11259, 'OF': 26418, 'CF': 7552, 'P': 42586, 'RF': 10307, '1B': 13087, '2B': 12348, '3B': 13507}

max(gh.iteritems(), key = lambda x: x[1])

output: ('P', 42586)

没有密钥:

max(gh.iteritems(), key = lambda x: x[1])
output : ('SS', 11259)

当您将键指定为 lambda x: x[1] 时,您的代码会根据字典值的最大值来选择项目。这当然是 42586。

但是,没有key,最大值是从dict的key中选择的。 "maximum" 是键 'SS',因为它在字典序上比任何其他键都大。

编辑:正如 DSM 在评论中指出的那样,没有指定 key,比较实际上使用了整个 (key, value) 对 iteritems()。但是,每个键的唯一性本质上使它成为键的比较,因为打破平局永远不需要 value