我想使用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中是否有内置函数可以让我做到这一点?
答案 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])