Skip to main content
 首页 » 编程设计

python之用列表理解替换 for 循环

2025年05月04日15linjiqin

嗨,这里是 python 的新手...如果这是一个基本问题,请原谅我

我想让我的代码很短,并注意到有一些简单的方法可以通过将 for 放在方括号内来遍历排序列表

例如

x = [] 
for i in range(10): 
    x.append(i) 
print x 

相当于:

y[i for i in range(10)] 
print y 

所以我想以类似的方式缩短以下内容

import matplotlib as plt 
import numpy as np 
y = [] 
for i in xrange(499): 
    y.append(np.random.binomial(500,.5)) 
 
plt.hist(y) 

我试过了,没用

z[np.random.binomial(500,.5) for i in xrange(499)] 

请您参考如下方法:

此功能称为列表理解。看看this documentation看看它们是如何工作的。

但是,在这种特殊情况下,您不需要列表理解,因为 numpy.random.binomial接受一个 size 参数。要生成包含 499 个样本的向量,您可以这样做:

z = np.random.binomial(500, 0.5, size=499)