2016-11-04 46 views
1

如何在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 

回答

0

你已經有答案實現這一目標使用列表理解。您可以與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()的兩份名單。

`

0

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]]] 
+0

只是糾正它.. –

+0

燁進行必要的變更......現在它看起來不錯我猜...有人可以接受這個答案,如果是 –

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