假设我有一些随机数 0-9。我想找到一种方法来获取值 0-9,但我不想重复另一个数字,直到所有其他值都使用了相同的次数。
例如。 4, 6, 5, 3, 0, 1, 9, 2, 7, 8,(随机数,因为我用过所有其他数字一次)
有什么有效的方法可以做到这一点吗?
最佳答案
反复打乱您想要的数字范围并将它们连接起来:
import random
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = []
for i in range(100):
random.shuffle(numbers)
result.extend(numbers)
print(result)
或者:
import random
import itertools
def generate_numbers():
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
while True:
random.shuffle(numbers)
yield from numbers
print(list(itertools.islice(generate_numbers(), 50)))
关于Python 随机数 使用新数字之前的唯一数字生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43446365/