如何将列表与列表列表合并

时间:2016-11-04 20:38:23

标签: python list python-3.x concatenation sublist

如何在Python中合并两个列表(一个列表列表)?

输入:

C = [[[1,2,3],[0]],[[1,2,3],[1]],[[1,2,3],[1]],[[1,2,3],[1]]]

期望的输出:

zip

我试过了:

{{1}}

3 个答案:

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

答案 1 :(得分:0)

更优雅的做法

DECLARE @singleQuote CHAR 
SET @singleQuote =  CHAR(39)

insert into my_table values('hi, my name'+ @singleQuote +'s tim.')

输出::

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)

答案 2 :(得分:0)

您已经有了使用 list comprehension 实现此目标的答案。如果您以正确的方式使用它,您也可以使用zip()来实现它:

  • 使用map(zip())组合作为:

    >>> 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(map())组合作为:

    >>> 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()这两个列表。

`