我有以下清单:

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 = [a + [b] for a, b in zip(listA, listB)]

但是请注意,这实际上是线性的,它会破坏旧的listA并创建新的listA,而原始代码只修改对象,因此效率更高。
最有效的方法就是把这两个连接起来
for a, b in zip(listA, listB):
    a.append(b)

关于python - 追加到 list list ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34697771/

10-13 00:02