在python中循环更新列表而不使用append函数。

时间:2015-02-02 14:22:24

标签: python list loops

嗨,假设我有;

a = np.array([1.,2.])
b = np.array([3.,4.])
r = []
... 
for i in range(10)
    b*i
    r[i] = ((a[0]+b[0]) - (a[1] - b[1]))
    ...
i = i+1

代码用于获取数组a和b,并对它们的元素执行加法和减法,并将它们放入我认为应该是列表的内容中,在本例中我称之为r。 (即所以r [0] = 0,r [1] = 6等。)

我知道这不起作用,但我不知道为什么有人能告诉我应该定义'r'是什么?

我宁愿避免使用类似的东西;

r.append(...) 

最终目标是绘制r vs i,因此我是否应该构建两个列表然后将它们相互映射,或者我应该以某种方式将它包含在循环中。

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用列表推导,例如,我将重写整个for循环并将r = []重写为:

r = [((a[0]+(b*i)[0]) - (a[1] - (b*i)[1])) for i in range(1,10)]

这样做更加可读,更快。