Python 如何从列表中选择一个随机元素,然后在列表中找到它的索引?
我有一个名称列表,使用Python 如何从列表中选择一个随机元素,然后在列表中找到它的索引?,python,Python,我有一个名称列表,使用random.choice(),我可以从列表中获得一个随机元素。现在我试图找出给定元素在列表中的索引。这就是我到目前为止所做的: import random x = ['Jess','Jack','Mary','Sophia','Karen','Addison','Joseph','Eric','Ilona','Jason'] y = random.choice(x) print(y) 您可以使用: 这将返回列表中找到匹配项的第一个索引。但是,如果列表中有重复项,则不会
random.choice()
,我可以从列表中获得一个随机元素。现在我试图找出给定元素在列表中的索引。这就是我到目前为止所做的:
import random
x = ['Jess','Jack','Mary','Sophia','Karen','Addison','Joseph','Eric','Ilona','Jason']
y = random.choice(x)
print(y)
您可以使用:
这将返回列表中找到匹配项的第一个索引。但是,如果列表中有重复项,则不会返回正确的索引
处理此问题的更好方法是,如果有重复项,则将索引而不是值随机化。因为您将始终存储所引用的正确索引,而不是第一次出现的索引
y = random.randint(0, len(x))
#3
x[y]
#Sophia
您可以给出
y=x.index(random.choice(x))
这将把索引分配给您可以使用的y
随机导入
x=['Jess','Jack','Mary','Sophia','Karen','Addison','Joseph','Eric','Ilona','Jason']
i=随机。随机范围(len(x))
打印(i,x[i])
示例输出:
7埃里克
这可以通过两种方式实现 方法1
random.choice
选择随机元素,然后使用list.index
查找索引
value= random.choice(x)
index= x.index(value)
index = random.choice(range(len(x)))
value = x[index]
注1:当列表中存在重复元素时,此操作不起作用
最好的方法是方法1
也可以使用random.choice获取索引
value= random.choice(x)
index= x.index(value)
index = random.choice(range(len(x)))
value = x[index]
但与随机相比,这有点慢。randangex.index(y)将为您提供索引。列表是否包含重复项?是的,这很重要<代码>索引仅返回列表中的第一个匹配项。列表。索引(元素、开始、结束)是命令。因此,如果您不提供开始或结束,那么它将找到第一个实例。如果有重复项,除非您指定开始位置,否则将找不到下一个,这是否回答了您的问题?请看下面的答案:你的答案与@packetlos有什么不同?我想我们两人都同时回答了。与公认的答案相比,这增加了什么新信息?