如何使用random.randint()
来选择在python列表中给出的随机名称。随机从列表中使用random.randint选择python
我想从列表中打印5个名称。其实我知道如何使用random.randint()
的数字。但我不知道如何从给定列表中选择随机名称。
我们不允许使用random.choice
。
帮我请
如何使用random.randint()
来选择在python列表中给出的随机名称。随机从列表中使用random.randint选择python
我想从列表中打印5个名称。其实我知道如何使用random.randint()
的数字。但我不知道如何从给定列表中选择随机名称。
我们不允许使用random.choice
。
帮我请
>>> population = range(10)
你允许使用random.sample
?
>>> names = random.sample(population, 5)
>>> names
[4, 0, 1, 2, 8]
仅仅使用random.randint
会比较困难,但如果你必须这样做,我会做这样的事情:
>>> names = [population[random.randint(0, len(population)-1)] for x in range(5)]
>>> names
[2, 8, 6, 6, 9]
但很明显,这是与更换。如果你不想更换,你需要一些更复杂的代码。例如,函数:
def custom_sample(population, count):
names = []
already_used = []
for x in range(count):
temp_index = random.randint(0, len(population)-1)
while temp_index in already_used:
temp_index = random.randint(0, len(population)-1)
names.append(population[temp_index])
already_used.append(temp_index)
return names
所以:
>>> names = custom_sample(population, 5)
>>> names
[7, 4, 8, 3, 0]
list = [...]
size = len(list)
randomName = list[random.randint()%size]
这并不能保证没有重复,因为random.choice是更好。
import random
names = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]
print([names[random.randint(0, len(names)-1)] for i in range(5)])
是,从一个群体重复取样,@ MaxLascombe的答案是确定。如果你不想在样本中使用瓷砖,你应该踢出选定的瓷砖。然后在列表的其余部分使用@ MaxLascombe的答案。