【问题标题】:concatenating sublists python [duplicate]连接子列表python [重复]
【发布时间】:2013-06-13 02:05:23
【问题描述】:

我有一个清单,例如: n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]

我想创建一个函数,它采用单个列表(见上文)并将属于它的所有子列表连接到一个列表中。

【问题讨论】:

  • 嗯,你试过什么?
  • 你可以简单地做sum(my_list, [])

标签: python list


【解决方案1】:
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
nn = [ x for y in n for x in y]

【讨论】:

    【解决方案2】:
    >>> lst = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
    >>> from itertools import chain
    >>> list(chain.from_iterable(lst))
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    【讨论】:

      【解决方案3】:

      为了完整起见,这里有一个非常简短的写法

      >>> sum(n, [])
      [1, 2, 3, 4, 5, 6, 7, 8, 9]
      

      虽然它很诱人,但你不应该因为它具有二次性能。即在添加每个术语时创建一个新列表,并且将一遍又一遍地复制所有以前的项目

      虽然可以使用 list.extend

      reduce(lambda x,y: x.extend(y) or x, n, [])
      

      【讨论】:

        【解决方案4】:

        你也可以通过简单的方式连接:

        print n[0]+n[1]
        

        一般是这样的:

        def concatenate(list):
            x=[]
            for i in list:
                x+=i
            return x
        

        但这并不是特别有效,对于初学者来说非常简单。

        【讨论】:

          猜你喜欢
          • 2017-08-02
          • 1970-01-01
          • 2015-09-24
          • 2019-12-09
          • 2011-03-02
          • 2016-10-08
          • 2021-04-22
          • 2019-04-05
          • 2022-01-25
          相关资源
          最近更新 更多