考虑以下字典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)
答案 0 :(得分:2)
当您将密钥指定为lambda x: x[1]
时,您的代码会根据dict值的最大值选择项目。当然,这是42586.
然而,没有密钥,最大值是从字典的键中选择的。 “最大值”是关键的“SS”,因为它的词典编码大于任何其他键。
编辑:正如DSM在评论中指出的那样,未指定key
,比较实际上使用整个(key, value)
对iteritems()。但是,每个键的唯一性基本上使这成为键的比较,因为打破平局永远不需要value
。