我有一个整数列表a
和b
。我想更新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
循环可以替换为与其等效的单行代码吗?
答案 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。首先,暴露的错误是否取决于哪个列表更短。