2

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

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

4

4 回答 4

4
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
nn = [ x for y in n for x in y]
于 2013-06-17T07:11:08.907 回答
3
>>> 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]
于 2013-06-17T07:12:09.897 回答
2

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

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

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

虽然可以使用 list.extend

reduce(lambda x,y: x.extend(y) or x, n, [])
于 2013-06-17T07:18:13.970 回答
0

您也可以通过简单地连接:

print n[0]+n[1]

一般来说,这将是:

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

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

于 2013-06-17T07:43:20.460 回答