我希望能够获得随机整数,但blacklist数组中的数字除外,我在理解如何重新遍历代码直到找到合适的数字时遇到了一些麻烦。

蟒蛇

def viewName(...):
    random_int = random.randint(0, 11)
    blacklist = [1, 2, 3, 5, 6, 10]

    for bl in blacklist:
        if random_int == bl:
            #try again till there's a number that isn't in the blacklist
        else:
            correctNumber = random_int
...


这似乎很基础,但是我不明白如何反复遍历直到有足够的数字,什么是最快,更有效的方法来实现这一点,有什么建议吗?

最佳答案

无需重新采样,只需从已删除黑名单的项目中预先准备的数据中采样:

import random

choices = list(set(range(12)).difference(blacklist))
n = random.choice(choices)

关于python - 如何获得不在整数黑名单中的随机数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45922761/

10-11 04:29