[英]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.