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

标签 python python-2.7

考虑以下字典 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/

相关文章:

python - 根据weight计算 float 权重并返回DataFrame

python - 安装 "Sundials"以使用 Assimulo

python-2.7 - 如何在 Python Scikit-learn 中存储与预向量化 X 匹配的预测类?

python - 使用 python 下载 .csv 文件

python - python3.5中无法导入Kicad的Pcbnew

Python 根据字符串条件生成新列

python - 字符串表达式的递归括号解析器

python - 鉴于文本之间有很多空格,如何将文本行拆分为多行?

python-2.7 - 从 Flask 服务器访问客户端网络摄像头

python - 将 itertools.product 转换为列表时笛卡尔积内存错误