检索最高值的列表位置?

时间:2012-04-09 14:22:44

标签: python list

有一个包含浮点值的列表,可以有所不同。如何找到此列表中最高值之一的随机选择列表索引?

如果您对上下文感兴趣: 我尝试为笔和纸游戏Battleship编写解算器。我尝试计算每个字段的命中概率,然后希望解算器在最可能的一个点上拍摄,这意味着检索我的可能性列表中最高可能性的索引然后告诉游戏引擎这个索引作为我的选择。第一步已经表明它可能发生,有很多领域具有相同的可能性。在这种情况下,随意选择其中一个是有意义的(而不仅仅是采取第一个或类似的东西)。

1 个答案:

答案 0 :(得分:4)

使用How to find all positions of the maximum value in a list?查找最大值。然后使用random.choice从列表中选择一个随机数。

>>> m = max(a)
>>> max_pos = [i for i, j in enumerate(a) if j == m]
>>> random.choice(max_pos)