Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存字典中特定列的最大值_Python - Fatal编程技术网

Python 保存字典中特定列的最大值

Python 保存字典中特定列的最大值,python,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:

我有一个以字典结尾的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
我想根据
C
的最大值
0.3269
保存
B
的值一次,即使该值重复了几次

期望输出:

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)
final_得分=无
最大值=浮点(“-inf”)
对于foo_范围内的i:#您的循环
#做点什么并检索“分数”和“n_群集”
如果最大簇
如果我正确理解了您的问题,考虑到以下几点:

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)
final_得分=无
最大值=浮点(“-inf”)
对于foo_范围内的i:#您的循环
#做点什么并检索“分数”和“n_群集”
如果最大簇
输入列表是否…?如果您在2分钟内思考此问题,则可能重复:您将能够解决它…输入列表是否…?如果您在2分钟内思考此问题,则可能重复:您将能够解决它…如果我没有“lst”怎么办。我的意思是我没有把价值储存在某个地方。它通过
print()
为我提供输出,然后只需计算循环中的最大值即可。考虑到您上次的请求,我更新了我的答案。如果我没有“lst”怎么办。我的意思是我没有把价值储存在某个地方。它通过
print()
为我提供输出,然后只需计算循环中的最大值即可。考虑到你上次的请求,我更新了我的答案。