作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
输入:
A= [{'A':0.4, 'B':0.8, 'C':1.0},
{'A':0.5, 'B':0.9, 'C':0.0}]
期望的输出:
A=[{'C':1.0},{'A':0.5, 'B':0.9}]
注意:我想遍历并只保留相同键中具有最大值的键!并且应该保留字典列表!
最佳答案
基于@Ioannis 的回答的更简洁的方法
max_dict = {k: max([d[k] for d in A]) for k in A[0]}
result = [{k: v for k, v in i.items() if v == max_dict[k]} for i in A]
print(result)
输出:
[{'C': 1.0}, {'A': 0.5, 'B': 0.9}]
详细做法:
您可以创建一个包含最大值的字典,并检查每个列表项。您可以使用 2 个 for 循环来实现它。
A = [{'A': 0.4, 'B': 0.8, 'C': 1.0},
{'A': 0.5, 'B': 0.9, 'C': 0.0}]
max_dict = {}
for a_dict in A:
for key, value in a_dict.items():
if key not in max_dict or max_dict[key] < value:
max_dict[key] = value
result = []
for a_dict in A:
temp_dict = {}
for key, value in a_dict.items():
if value == max_dict[key]:
temp_dict[key] = value
result.append(temp_dict)
print(result)
输出:
[{'C': 1.0}, {'A': 0.5, 'B': 0.9}]
关于python - 如何在多个字典中只保留具有全局最大值的键值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67269272/
我是一名优秀的程序员,十分优秀!