在列表的列表中添加成对的项目

Adding items from pairs in list of lists

如何在列表的列表中压缩对?

 A=[[ 1,2 ],[ 3  ,  4]]
 B=[[ 4,5 ],[ 8  ,  9]]
 ->(1,4),(2,5),(3,8),(4,9)

我试过类似 zip(*A,*B) 的东西,但我得到 SyntaxError: only named arguments may follow *expression

最后我要做的是添加它们:

 A=[[ 1,2 ],[ 3  ,  4]]
 B=[[ 4,5 ],[ 8  ,  9]]
  =[[ 5,7 ],[ 11 , 13]]

(同样无效):

add= [i+j for i,j in zip(*A,*B)]

考虑使用 numpy:

>>> A = [[1, 2], [3, 4]]
>>> B = [[4, 5], [8, 9]]
>>> import numpy
>>> numpy.array(A) + numpy.array(B)
array([[ 5,  7],
       [11, 13]])

>>> list(map(list, _))
[[5, 7], [11, 13]]

首先,zipAB,然后zip前面zip给出的列表,像这样

result = []
for items in zip(A, B):
    for data in zip(*items):
        result.append(data)

同样可以简洁的写成List Comprehension,像这样

>>> [data for items in zip(A, B) for data in zip(*items)]
[(1, 4), (2, 5), (3, 8), (4, 9)]