Python 如何从列表中获得随机最大值?
我想使用python从列表中随机获取最大值。我的清单是:Python 如何从列表中获得随机最大值?,python,python-3.x,list,max,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中是否有一个内置函数允许我这样做?您可以先筛选包含最大值的索引,然后使用random.choice随机选择一个 import rando
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_])
作为旁注,不要将
列表
用作变量名,因为它会覆盖内置的列表
您可以先筛选包含最大值的索引,然后使用随机。选择
随机选取一个
import random
lst=[0,-1,-2,0]
max_ = max(lst)
index = random.choice([i for i in range(len(lst)) if lst[i] == max_])
作为旁注,不要将
列表
用作变量名,因为它会覆盖内置的列表
首先获取包含最大值的索引:
maxes = [i for i,m in enumerate(list) if m == max(list)]
然后从该列表中选择一个随机索引:
import random
choice = random.choice(maxes)
那你想怎么做就怎么做
print(list[choice])
首先获取包含最大值的索引:
maxes = [i for i,m in enumerate(list) if m == max(list)]
然后从该列表中选择一个随机索引:
import random
choice = random.choice(maxes)
那你想怎么做就怎么做
print(list[choice])
小心,这会在每次迭代时重新计算最大值,这使得算法HMM(n^2)根据列表中的最大值计算索引,将它们存储在列表中,然后从索引列表中随机获取一个值。您能向我解释一下您的评论吗?我是一名土木工程师,因此对计算机科学/编程理论知之甚少,我很好奇,当最大索引列表已经预先确定时,如何在每次迭代中重新计算最大值?如果在每次迭代中重新评估某个条件(m),则过滤条件
。这意味着,如果m==max(list)
在每次迭代时重新计算条件,尤其是每次重新计算最大值。这是不必要的计算,因为最大值只需计算一次。你可以看看我的答案,看看如何实现这一点。我知道用预先计算的最大值替换最大值(列表)就能解决这个问题?小心,这会在每次迭代时重新计算最大值,这使得算法HMM(n^2)根据列表中的最大值计算索引,并将它们存储在列表中,然后从索引列表中随机抽取一个值,你能给我解释一下你的评论吗?我是一名土木工程师,因此对计算机科学/编程理论知之甚少,我很好奇,当最大索引列表已经预先确定时,如何在每次迭代中重新计算最大值?如果在每次迭代中重新评估某个条件(m)
,则过滤条件。这意味着,如果m==max(list)
在每次迭代时重新计算条件,尤其是每次重新计算最大值。这是不必要的计算,因为最大值只需计算一次。你可以看看我的答案,看看如何做到这一点。我明白了,用预先计算的最大值替换最大值(列表)就能解决这个问题吗?我知道,我只是举个例子。谢谢你的回答。我把它标为正确的。我知道,我只是举个例子。谢谢你的回答。我把它标为正确的。