当前位置:  开发笔记 > 编程语言 > 正文

附加在列表中

如何解决《附加在列表中》经验,为你挑选了2个好方法。

我有以下清单:

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])

结果还可以,但我想使用列表理解(如果可能,或者另一种更优雅的方式)在一行中完成.我可以理解一个简单的列表理解但不是更复杂.



1> serge-sans-p..:

这应该做的伎俩:

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



2> lejlot..:

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

listA = [a + [b] for a, b in zip(listA, listB)]

但是请注意,这实际上是线性的,它会破坏旧的listA并创建新的,而原始代码更有效,因为它只修改listA对象.

最有效和pythonic的方式是连接这两个和呼叫

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

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有