python - 在字典中保存特定列的最大值
问题描述
我有一个以字典结尾的 for 循环:
print("A: {0}, B: {2}, C: {1}".format(k,score,n_clusters))
A: -11.88, B: 8, C: 0.0548
A: -10.79, B: 76, C: 0.0049
A: -6.167, B: 57, C: -0.0018
A: -2.569, B: 94, C: -0.0062
A: -1.667, B: 2, C: 0.3269 # same value
A: -1.356, B: 2, C: 0.3269 # same value
我想保存B
基于最大值的值,C
即使0.3269
这个值被重复多次。
期望的输出:
final_score = 2
解决方案
如果我正确理解您的问题,请给出以下内容:
lst = [{'A': -11.88, 'B': 8, 'C': 0.0548},
{'A': -10.79, 'B': 76, 'C': 0.0049},
{'A': -6.167, 'B': 57, 'C': -0.0018},
{'A': -2.569, 'B': 94, 'C': -0.0062},
{'A': -1.667, 'B': 2, 'C': 0.3269},
{'A': -1.356, 'B': 2, 'C': 0.3269}]
此代码适合您:
final_score = max(lst, key=lambda x:x['C'])['B']
如果您没有将字典值保存在列表中,但想在循环中找到最大值,只需执行以下操作:
final_score = None
max_clusters = float("-inf")
for i in foo_range: # your loop
# do something and retrieve 'score' and 'n_clusters'
if max_clusters < n_clusters:
final_score = score
max_clusters = n_clusters
print(final_score)
推荐阅读
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误
- python - “函数”对象在单元测试中没有属性“assert_call”
- typescript - 键入动态导入
- html - 我如何设计这个 mat-sidenav 的样式?
- maptiler - 有没有办法使用maptiler在云中创建maptiles?