[英]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.