Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成范围内无特定数字的随机数_Python_Random - Fatal编程技术网

Python 生成范围内无特定数字的随机数

Python 生成范围内无特定数字的随机数,python,random,Python,Random,我已经在谷歌上搜索了一段时间,还没有找到解决方案 我想我可以用几行代码来实现这一点,但我想要的是一个简单(可能只有一行)的答案 我想要的是生成一个4000到5000之间但没有特定数字的数字列表:在我的例子中是7、8和9。random中是否有任何模块或函数可以执行此操作?类似的操作也可以 >>> num = [elem for elem in xrange(4000, 5001) if not {'7', '8', '9'}.intersection(str(elem))] &g

我已经在谷歌上搜索了一段时间,还没有找到解决方案

我想我可以用几行代码来实现这一点,但我想要的是一个简单(可能只有一行)的答案


我想要的是生成一个4000到5000之间但没有特定数字的数字列表:在我的例子中是7、8和9。
random
中是否有任何模块或函数可以执行此操作?

类似的操作也可以

>>> num = [elem for elem in xrange(4000, 5001) if not {'7', '8', '9'}.intersection(str(elem))]
>>> choice(num)
4210
>>> choice(num)
4640
>>> choice(num)
4102
理解的工作原理是创建一个由字符串
{'7','8','9'}
组成的集合,并找到该集合与数字集合(从4000到5000生成,包括4000到5000)的交集。如果交叉点为空,则该数字没有上面指定的任何数字,在这种情况下,我们应该包括该数字,并使用该列表生成随机数

比如说,

>>> {'7', '8', '9'}.intersection(str(4555))
set([])
>>> {'7', '8', '9'}.intersection(str(4765))
set(['7'])

这正是我想要的,泰。你能解释一下那个
.intersection(str(elem))
是干什么的吗?