python:当你用random.choice(seq)从一个序列中随机选择一个元素时,如何知道索引

Mon*_*ker 15 python random indexing choice

我非常清楚如何从列表中选择随机项目,random.choice(seq)但我如何知道该元素的索引?

ast*_*y13 9

您可以先选择一个随机索引,然后在该位置获取list元素以同时包含索引和值.

>>> import random
>>> a = [1, 2, 3, 4, 5]
>>> index = random.randint(0,len(a)-1)
>>> index
0
>>> a[index]
1
Run Code Online (Sandbox Code Playgroud)


Vad*_*der 9

import random
l = ['a','b','c','d','e']
i = random.choice(range(len(l)))
print i, l[i]
Run Code Online (Sandbox Code Playgroud)

  • 这么优雅的回答。 (2认同)
  • 对于 random.choices(range(len(l)), k=n) 也有效,其中 n 是您想要的随机抽取次数。 (2认同)

小智 5

您可以使用random模块中的randrange函数来完成

import random
l = ['a','b','c','d','e']
i = random.randrange(len(l))
print i, l[i]
Run Code Online (Sandbox Code Playgroud)


AJ.*_*AJ. 2

如果序列中的值是唯一的,您始终可以说: list.index(value)

  • “如果任何值重复......”,我的回答是“如果值是唯一的”。我很欣赏您的评论,但请使其具体到*我的*答案,而不是仅仅复制/粘贴您的评论以获取其他人的答案。 (2认同)