为什么函数只返回一个最大值python3?

时间:2017-09-16 06:28:55

标签: python python-3.x max

我正在尝试返回具有最大值的变量。但是,如果变量具有公共值,则max()仅返回一个值。她就是我得到的东西:

>>> d = {'x1':2,'x2':2}
>>> max(d, key=d.get)
'x2'

正如可以看到两个变量的值都是2max()只将输出作为一个变量返回,而不是两个较大的值。

请告诉我max()如何返回多个最大值?

1 个答案:

答案 0 :(得分:0)

没有为此内置任何内容,但您可以使用max所做的相同策略:

def max_all(iterable, *, key):
    it = iter(iterable)
    max_values = [next(it)]
    max_key = key(max_values[0])

    for x in it:
        x_key = key(x)

        if x_key > max_key:
            max_values = [x]
            max_key = x_key
        elif x_key == max_key:
            max_values.append(x)

    return max_values

demo