Mpi*_*ris 2 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]
Run Code Online (Sandbox Code Playgroud)
而且我要:
listC = [[1, 1, 1, 1, 1], [1, 1, 1, 1, 2], [1, 1, 1, 1, 3], [1, 1, 1, 1, 4]]
Run Code Online (Sandbox Code Playgroud)
我使用以下代码:
for i in range(len(listA)):
listA[i].append(listB[i])
Run Code Online (Sandbox Code Playgroud)
结果还可以,但我想使用列表理解(如果可能,或者另一种更优雅的方式)在一行中完成.我可以理解一个简单的列表理解但不是更复杂.
列表理解不用于交替(修改)现有对象,但是为了创建新对象,您可以通过压缩元素来实现
listA = [a + [b] for a, b in zip(listA, listB)]
Run Code Online (Sandbox Code Playgroud)
但是请注意,这实际上是线性的,它会破坏旧的listA并创建新的,而原始代码更有效,因为它只修改listA对象.
最有效和pythonic的方式是连接这两个和呼叫
for a, b in zip(listA, listB):
a.append(b)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |