生成器中随机整数的条件过滤



我想创建一个随机数生成器。

import numpy as np
rd_list = (np.random.randint(10) for i in range(6))

当我尝试这样做时,我得到的值[7,1,4,2,0,6]

我想通过这个条件来过滤这些结果<5 .

我怎样才能得到这个结果?

另一种使用赋值表达式的方法(Python 3.8+):

import random 
nums = (n for _ in range(6) if (n := random.randint(0, 10)) < 5)

感谢Andrej的评论:既然你已经在使用numpy,你不需要循环:

import numpy as np
nums = (n for n in np.random.randint(0, 10, 6) if n < 5)
for i in range(6):
a = np.random.randint(10)
if a < 5:
List.append(a)

最新更新