繁体   English   中英

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

[英]How to get a random maximum from a list?

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

您可以首先过滤包含最大值的索引,然后使用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

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

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

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

import random
choice = random.choice(maxes)

然后做你想做的..

print(list[choice])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM