簡體   English   中英

附加在列表中

[英]Appending in lists of list

我有以下清單:

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 ,而原始代碼更有效,因為它只修改了listA對象。

最有效和pythonic的方式是連接這兩個和呼叫

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM