Python使用列表理解生成随机偶数

Pav*_*utt 0 python list-comprehension list

一个试图理解 Python 列表推导式的人为例子

我想生成一个包含 1 到 100 范围内的 1000 个随机偶数的列表,这就是我所拥有的

import random
list = [random.randint(1,100) for _ in range(1,1000) if _ %2 ==0]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在 for 循环中检查 randint() 的结果。

我知道这可以通过random.randrange(x,y,2)或其他机制来完成。我想了解我是否可以以列表理解的方式做到这一点。

Ada*_*ith 5

当然你可以使用列表理解,只是不是这样。您可以做的是编写一个生成随机偶数的函数,然后执行以下操作:

[your_func() for _ in range(1000)]
Run Code Online (Sandbox Code Playgroud)

your_func 在这种情况下可能是:

while True:
    n = random.randint(1, 100)
    if n%2 == 0:
        yield n
Run Code Online (Sandbox Code Playgroud)

但当然,这并不比您注意到的使用random.randrange(2, 101, 2).

[random.randrange(2, 101, 2) for _ in range(1000)]
Run Code Online (Sandbox Code Playgroud)