找到最大的值并用Python打印

时间:2018-01-23 23:09:34

标签: python python-2.7 loops for-loop max

我正在尝试找到变量的最大值,其中变量必须包含在其中一个列表值中。

我的代码如下,似乎工作正常,但我遇到了问题。基本上,代码使用找到的最后一个值覆盖值,而不是保留最高值。

d_list = ['a','b','c']
for value in values:
    name = value['name']
    category = value['category']
    rank = value['rank']
    largest = None
    for x in d_list:
        if x in name:
           if largest is None or rank > largest:
              largest = rank
              info[x + ' ' + 'Rank'] = largest                                                                                                                        

有关如何保持每个x的最高得分的任何建议?谢谢

2 个答案:

答案 0 :(得分:2)

largest = {}

list = ['a', 'b', 'c']
for value in values:
    rank = value['rank']

    for x in list:
        if x in value['name']:
            largest[x] = max(largest.get(x, rank), rank)

答案 1 :(得分:1)

您的问题表明for循环的每次迭代都会被排名覆盖最大值。我猜这是因为你需要在最后一个if语句后缩进。 Python使用缩进来解析条件,并且此代码总是在最后一个if语句之后进入块,因为该语句没有缩进。