附加值的更快方法

2024-09-24 10:22:22 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个很大的浮点值列表,并且我只想选择其中的一部分来查看另一个数组:

result = []
for x,s in zip(xlist, slist):
    if f(s): result.append(x)

在循环开始时,我可以粗略估计有多少个条目将通过f选择

现在这是非常慢的,我试图将list更改为array,但是只看附加,我会变慢

def f(v):
    for ii in a: v.append(ii)
a = range(int(1E7))
v = []
t = time(); f(v); print time()-t # -> 1.3
v = array.array('i')
t = time(); f(v); print time()-t # -> 3.4

我需要更快,因为这个循环在我的程序中非常慢。numpy.array能帮我吗?没有append方法。


Tags: in列表foriftime数组resultzip