如何在Python中合併兩個列表(一個列表列表)?如何將列表與列表進行合併
輸入:
A = [[1,2,3],[3,4,5],[6,7,8],[9,10,11]]
B = [0,1,1,1]
所需的輸出:
C = [[[1,2,3],[0]],[[1,2,3],[1]],[[1,2,3],[1]],[[1,2,3],[1]]]
我想:
zip
如何在Python中合併兩個列表(一個列表列表)?如何將列表與列表進行合併
輸入:
A = [[1,2,3],[3,4,5],[6,7,8],[9,10,11]]
B = [0,1,1,1]
所需的輸出:
C = [[[1,2,3],[0]],[[1,2,3],[1]],[[1,2,3],[1]],[[1,2,3],[1]]]
我想:
zip
你已經有答案實現這一目標使用列表理解。您可以與zip()
實現它爲好,如果你用它在正確的方法爲:使用作爲
map(zip())
組合:使用zip(map())
組合
>>> list(map(lambda x: [A[0], [x]], B))
[[[1, 2, 3], [0]], [[1, 2, 3], [1]], [[1, 2, 3], [1]], [[1, 2, 3], [1]]]
爲:
>>> zip([A[0]]*4, map(lambda x: [x], B))
[([1, 2, 3], [0]), ([1, 2, 3], [1]), ([1, 2, 3], [1]), ([1, 2, 3], [1])]
說明:這裏map()
將轉換您的列表B
到:
>>> map(lambda x: [x], B)
[[0], [1], [1], [1]]
和[A[0]]*4
將創建爲A[0]
份新的列表:
>>> [A[0]]*4
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
現在你只是需要zip()
的兩份名單。
`
做
A=[[1,2,3],[3,4,5],[6,7,8],[9,10,11]]
B=[0,1,1,1]
map(lambda e: [A[0],[e]], B)
的更優雅的方式
輸出::
[[[1, 2, 3], [0]], [[1, 2, 3], [1]], [[1, 2, 3], [1]], [[1, 2, 3], [1]]]
根據您所需要的輸出,你想第一個內部列表從列表A
與每個項目從列表B
結合起來。
使用以下簡單的方法(列表理解):
C = [[A[0], [i]] for i in B]
print(C)
輸出:
[[[1, 2, 3], [0]], [[1, 2, 3], [1]], [[1, 2, 3], [1]], [[1, 2, 3], [1]]]
只是糾正它.. –
燁進行必要的變更......現在它看起來不錯我猜...有人可以接受這個答案,如果是 –