如何从列表中获得随机最大值?

时间:2019-08-18 22:34:42

标签: python python-3.x list max

我想使用python从列表中获得随机最大值。说,我的清单是:

list=[0,-1,-2,0] -> index(max(list))=0

但是,我想要的是它随机选择一个包含最大值的索引,例如

list=[0,-1,-2,0] -> index(some_func(list))=0 , index(some_func(list))=3

Python中是否有内置函数可以让我做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以先过滤包含最大值的索引,然后使用random.choice随机选择一个。

import random

lst=[0,-1,-2,0]
max_ = max(lst)
index = random.choice([i for i in range(len(lst)) if lst[i] == max_])

作为旁注,请勿使用list作为变量名,因为它会覆盖内置的list

答案 1 :(得分:0)

首先获取包含最大值的索引:

maxes = [i for i,m in enumerate(list) if m == max(list)]

然后从此列表中选择一个随机索引:

import random
choice = random.choice(maxes)

然后用它来做您想做的事。

print(list[choice])