我有一个列表,例如:n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
我想创建一个函数,它接受一个列表(见上文)并将所有属于它的子列表连接到一个列表中。
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
nn = [ x for y in n for x in y]
>>> 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]
为了完整起见,这里有一个非常简短的写法
>>> sum(n, [])
[1, 2, 3, 4, 5, 6, 7, 8, 9]
但是,尽管它很诱人,但您不应该这样做,因为它具有二次性能。即在添加每个术语时创建一个新列表,并且将一遍又一遍地复制所有以前的项目
虽然可以使用 list.extend
reduce(lambda x,y: x.extend(y) or x, n, [])
您也可以通过简单地连接:
print n[0]+n[1]
一般来说,这将是:
def concatenate(list):
x=[]
for i in list:
x+=i
return x
但这并不是特别有效,对于初学者来说非常简单。