【问题标题】:How combine two list in list into one list?如何将列表中的两个列表合并为一个列表?
【发布时间】:2018-11-09 09:03:47
【问题描述】:

假设我有:

A = [[a,b,c,d],[1,2,3,4]]
B = [[1.2,1.7],[1.6,1.8]]

我想将 2 个列表合并为一个列表

C = [[a,b,c,d,1.2,1.7],[1,2,3,4,1.6,1.8]]

如何在 Python 中做到这一点? 谢谢

【问题讨论】:

标签: python list


【解决方案1】:

有很多不同的方法可以组合两个列表。

您可以将两个列表添加在一起:

[1,2,3] + [4,5,6]

会给你:

[1,2,3,4,5,6]

您可以将列表附加到列表列表中:

[[1,2,3],[4,5,6]].append([7,8,9])

会给你:

[[1,2,3],[4,5,6],[7,8,9]]

您也可以压缩两个列表:

zip([1,2,3],[4,5,6])

会给你:

[(1,4),(2,5),(3,6)]

看起来你正在寻找的是:

C = []

for sublist_1, sublist_2 in zip(A, B):
    C.append(sublist_1 + sublist_2)

或者更简洁地使用列表推导:

C = [sublist_1 + sublist_2 for sublist_2, sublist_2 in zip(A,B)]

【讨论】:

    【解决方案2】:

    您可以为此使用zip 和itertools.starmap

    In [110]: A
    Out[110]: [[2, 4, 5, 6], [1, 2, 3, 4]]
    
    In [111]: B
    Out[111]: [[1.2, 1.7], [1.6, 1.8]]
    
    In [112]: import itertools
    
    In [113]: list(itertools.starmap(lambda x,y:x+y,zip(A,B)))
    Out[113]: [[2, 4, 5, 6, 1.2, 1.7], [1, 2, 3, 4, 1.6, 1.8]]
    

    【讨论】:

      【解决方案3】:

      使用extend() 方法将一个列表的元素连接到另一个列表,然后将此结果列表附加到最终列表。

      for i in range(len(a)):
          a[i].extend(b[i])
          c.append(a[i])
      

      【讨论】:

      • 虽然这可能会回答作者的问题,但它缺少一些解释性文字和/或文档链接。如果没有围绕它们的一些短语,原始代码 sn-ps 并不是很有帮助。您可能还会发现how to write a good answer 非常有帮助。请编辑您的答案。
      猜你喜欢
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2015-04-01
      • 2014-01-03
      • 2019-02-05
      • 1970-01-01
      相关资源
      最近更新 更多