Python 在列表的列表中追加

Python 在列表的列表中追加,python,list-comprehension,Python,List Comprehension,我有以下清单: listA = [[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]] listB = [1,2,3,4] 我想: listC = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 2], [1, 1, 1, 1, 3], [1, 1, 1, 1, 4]] 我正在使用以下代码: for i in range(len(listA)): listA[i].append(listB[i]) 结果还可以,但我想在一行中使用列表理解(

我有以下清单:

listA = [[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]
listB = [1,2,3,4]
我想:

listC = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 2], [1, 1, 1, 1, 3], [1, 1, 1, 1, 4]]
我正在使用以下代码:

for i in range(len(listA)):
     listA[i].append(listB[i])

结果还可以,但我想在一行中使用列表理解(如果可能的话,或者其他更优雅的方式)。我可以理解一个简单的列表理解,但不能理解更复杂的内容。

这应该可以做到:

[x + [y] for x, y in zip(listA, listB)]

列表理解不用于替换(修改)现有对象,但要创建新对象,可以通过压缩元素来实现

listA = [a + [b] for a, b in zip(listA, listB)]
但是请注意,这在时间上实际上是线性的,它会破坏旧的
listA
并创建新的,而原始代码更有效,因为它只修改
listA
对象

最有效的方法是将这两个连接起来,然后调用

for a, b in zip(listA, listB):
    a.append(b)

所以你想把B中的第一个元素附加到A中的第一个列表中,把第二个元素附加到A中的第二个列表中,等等?是的。谢谢你的评论,我编辑了我的问题,以便更清楚。