使用随机整数在生成器中进行条件过滤

Conditional Filtering in Generator with random integer

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

import numpy as np

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

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

我想按此条件过滤这些结果 < 5。

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

for i in range(6):
    a = np.random.randint(10)
    if a < 5:
        List.append(a)

另一种使用赋值表达式的方法(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)