【发布时间】:2013-06-13 02:05:23
【问题描述】:
我有一个清单,例如: n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
我想创建一个函数,它采用单个列表(见上文)并将属于它的所有子列表连接到一个列表中。
【问题讨论】:
-
嗯,你试过什么?
-
你可以简单地做
sum(my_list, [])
我有一个清单,例如: n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
我想创建一个函数,它采用单个列表(见上文)并将属于它的所有子列表连接到一个列表中。
【问题讨论】:
sum(my_list, [])
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
但这并不是特别有效,对于初学者来说非常简单。
【讨论】: