Python Random Number使用新数字前的唯一数字生成器

时间:2017-04-17 06:33:01

标签: python random

说我有一些随机数0-9。我想找到一种方法来获取值0-9,但我不希望重复另一个数字,直到所有其他值被使用了相同的次数。

实施例。 4,6,5,3,0,1,9,2,7,8,(兰德数,因为我每隔一次使用其他数字)

有没有有效的方法可以做到这一点?

1 个答案:

答案 0 :(得分:4)

反复改变你想要的数字范围并将它们连接起来:

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)))
相关问题