我正在尝试返回具有最大值的变量。但是,如果变量具有公共值,则max()
仅返回一个值。她就是我得到的东西:
>>> d = {'x1':2,'x2':2}
>>> max(d, key=d.get)
'x2'
正如可以看到两个变量的值都是2
,max()
只将输出作为一个变量返回,而不是两个较大的值。
请告诉我max()
如何返回多个最大值?
答案 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