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))
是干什么的吗?