考虑以下字典 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)
没有 key :
max(gh.iteritems(), key = lambda x: x[1])
output : ('SS', 11259)
最佳答案
当您将键指定为 lambda x: x[1]
时,您的代码将根据字典值的最大值来选择项目。当然是 42586。
但是,如果没有键,将从字典的键中选择最大值。 “最大值”是键“SS”,因为它按字典顺序比任何其他键都大。
编辑:正如 DSM 在评论中指出的那样,在没有指定 key
的情况下,比较实际上使用整个 (key, value)
对 iteritems()。然而,每个键的唯一性本质上使其成为键的比较,因为决不需要 value
来打破平局。
关于python - python 中的最大迭代项和关键属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894738/