如何通过迭代从列表中随机选择但至少选择列表中的每个成员一次?

时间:2021-05-19 08:58:08

标签: python random

我希望我的代码在长度为 3 的列表上迭代四次(或可能更大),同时访问列表中的每个数字至少一次。

for i in range(4):
        rand_selection = random.choice([1, 0, -1])
        print(rand_selection)

在上面的代码中,它有可能没有选择列表中的每一个项目。 例如,如果它随机选择了 1 1 0 1,它甚至可能不会打印一次 -1。

感谢您的建议和帮助。

1 个答案:

答案 0 :(得分:1)

这个解决方案感觉像是一个骗局,但

import random

lis = [1, 0, -1]
random.shuffle(lis)
print(lis+[random.choice(lis)])

返回一个包含 4 个数字的列表,可以指定为您的 4 个选择。