python - 我如何使用(唯一键和最大值)从字典中提取所有值

标签 python dictionary

如何通过(唯一键和最大值)从字典中提取所有值?

示例:

{('117', 14): 10, ('113', 11): 5, ('117', 16): 3, ('113', 5): 1}

输出将是:

{('117', 14): 10, ('113', 11): 5}

最佳答案

您可以使用itertools.groupby:

import itertools
d = {('117', 14): 10, ('113', 11): 5, ('117', 16): 3, ('113', 5): 1}
new_d = [list(b) for _, b in itertools.groupby(sorted(d.items(), key=lambda x:x[0][0]), key=lambda x:x[0][0])]
final_result = dict(max(i, key=lambda x:x[-1]) for i in new_d)

输出:

{('113', 11): 5, ('117', 14): 10}

关于python - 我如何使用(唯一键和最大值)从字典中提取所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030391/

相关文章:

arrays - Swift - 将数组转换为字典

python - 从字典列表中获取键值

python - 如何将多个列表附加到 python 字典中的一个键?

python - 从 numpy 矩阵获取项目,索引位于数组中

python - 用Python挖掘海量数据集

即使安装了 nmap 并且 nmap.exe 在路径中,Python nmap 程序也未在路径中找到错误

python - 如何在 Django CMS 中复制 PlaceholderField

python - 形成嵌套列表并计算字段之和

regex - 用于将键值对解析为字符串映射的 Golang 正则表达式

python - 我不希望 psycopg2 在查询结果中转义换行符 (\n)