首页 > 解决方案 > 执行具有列表异常的 randrange()

问题描述

我有一个清单:

l = [6,20,1,3,34]

我做了一个函数,它生成 1 - 50 之间的随机数字:

from random import randrange
def rand():
     return randrange(1,50,1)

我想从列表中获取数字,并且我想多次运行该函数,并且输出的值应该与上面列表中的值不同。

很热地写我的函数有例外?

谢谢你。

标签: pythonpython-3.xpython-2.7

解决方案


你可以使用:

def rand():
    n = randrange(1,, 50)
    while n in l:
        n = randrange(1, 50)
    return n

while这个想法是使用循环生成一个随机数,直到该数字不在列表中


或者你可以使用:

from random import choice

l = [6,20,1,3,34]
not_in_my_list = list(set(list(range(1, 51))).difference(l))

def rand():
    return choice(not_in_my_list)

另一种解决方案是生成一个列表,其中包含不在列表中但在您想要的范围内的所有元素,然后使用random.choice


推荐阅读