Python 随机数 使用新数字之前的唯一数字生成器

标签 python random

假设我有一些随机数 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/

相关文章:

python - 在 Flask 中使用 app.add_url_rule 的默认值

c++ - 什么时候使用 std::random_device?

python - 生成一个有n个顶点的随机二叉树

python - Django : Which approach is better [ virtualenv + pip ] vs [manually carrying packages in svn]?

ruby - Ruby 中的快速(不安全)随机字节生成器

random - Erlang - 随机数生成器

java - Java生成指定位数的随机整数

python - find_packages 找不到我的 Python 文件

python - python 中的项目 euler (#53)

python - 从Python文件中加载文本