通过将另一个列表中的整数添加到列表中来更新列表中的整数

时间:2014-02-11 21:45:25

标签: python python-3.x

我有一个整数列表ab。我想更新a中的整数,以便a[i] = a[i] + b[i]

注意:我想避免创建新列表。我想更新现有列表。

目前,我正在使用for循环进行此操作,如下所示。

>>> a = [1, 2, 3, 4, 5]
>>> b = [10, 10, 20, 20, 100]
>>> for i in range(len(a)):
...     a[i] += b[i]
...
>>> a
[11, 12, 23, 24, 105]

for循环可以替换为与其等效的单行代码吗?

2 个答案:

答案 0 :(得分:3)

这可以通过理解来完成:

[a_i + b_i for a_i, b_i in zip(a, b)]

答案 1 :(得分:-1)

一种非常简单的方法是导入numpy(如果你安装了它,或者会做类似的事情)。

>>> import numpy as np
>>> a = [1, 2, 3, 4, 5]
>>> b = [10, 10, 20, 20, 100]
>>> a = np.add (a,b)
>>> a
array([ 11,  12,  23,  24, 105])

这和原始问题存在阵列大小不同的风险。如果发生这种情况,此方法将始终引发ValueError。首先,暴露的错误是否取决于哪个列表更短。