繁体   English   中英

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

[英]Python Generating random even numbers using list comprehension

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

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

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

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

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

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

[your_func() for _ in range(1000)]

your_func在这种情况下可能是:

while True:
    n = random.randint(1, 100)
    if n%2 == 0:
        yield n

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

[random.randrange(2, 101, 2) for _ in range(1000)]

旧帖子但是:

from random import randint
even = sum(randint(1, 100) % 2 == 0 for _ in range(1, 1000))
print(even)
import random
def my_generator():
    while True:
        yield random.randrange(0,10000,2)
a=my_generator()
print(next(a))

每次运行此代码时,它都会生成一个范围为 0-10000 的偶数(您可以轻松更改rangerandom.randrange(start,stop,step) start 和 stop 此处step=2以生成偶数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM