使用两个值为数组指定值

时间:2017-04-27 15:35:10

标签: python

我正在尝试生成一个数组,该数组是前两个数组的总和。 e.g

c = [A + B for A in a and B in b]

在此处,收到错误消息

NameError: name 'B' is not defined

,其中

len(a) = len(b) = len(c)

请你告诉我我做错了什么。感谢。

3 个答案:

答案 0 :(得分:2)

布尔and运算符不会将迭代连接在一起,它会评估其两个操作数的真实性(或 falsiness )。

您正在寻找的是zip

c = [A + B for A, B in zip(a, b)]

两个迭代中的项目被连续分配到AB,直到其中一个用尽。 B现已定义!

答案 1 :(得分:0)

应该是

c = [A + B for A in a for B in b]

for代替and。您可能需要考虑使用numpy,您可以直接添加2个矩阵,效率更高。

答案 2 :(得分:0)

'for'不能按您希望的方式工作。 你可以使用zip()。

A = [1,2,3]
B = [4,5,6]
c = [ a + b for a,b in zip(A,B)]

zip遍历A& B并产生元组。 要看看这是什么样的尝试:

[ x for x in zip(A,B)]