我希望能够获得随机整数,除了我的blacklist
数组中的数字,我在理解如何再次迭代代码直到找到好的数字时遇到了一些麻烦。
的Python
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
...
这看起来很基本,但我不明白我怎么能一遍又一遍地迭代,直到有一个好数字,什么是最快,更有效的方法来实现这个,任何建议?
答案 0 :(得分:4)
不是重新抽样,而是从预先准备好的数据中抽取已列入黑名单的项目:
import random
choices = list(set(range(12)).difference(blacklist))
n = random.choice(choices)
答案 1 :(得分:1)
在python中没有做...而。我会做以下事情:
def viewName(...):
blacklist = [1, 2, 3, 5, 6, 10]
random_int = 1
while random_int in blacklist:
random_int = random.randint(0, 11)