concatenating sublists python
本问题已经有最佳答案,请猛点这里访问。
我有一个列表,比如:N=[[1,2,3],[4,5,6,7,8,9]]
我想创建一个函数,它接受一个列表(见上文),并将它的所有子列表连接到一个列表中。
1 2 | n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]] nn = [ x for y in n for x in y] |
1 2 3 4 | >>> 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] |
对完全性,这里的冰很短的方式写。
1 2 | >>> sum(n, []) [1, 2, 3, 4, 5, 6, 7, 8, 9] |
但是,尽管它是诱人的,你不应该因为它具有二次性能。IE的一个新的战略创造了冰的冰加为每个术语,和所有以前的项目将在copied鸭子
它的两个list.extend虽然好用
1 | reduce(lambda x,y: x.extend(y) or x, n, []) |
你可以做简单的城市也将:
1 | print n[0]+n[1] |
这将是通用的:
1 2 3 4 5 | def concatenate(list): x=[] for i in list: x+=i return x |
但这是不是特别有效,只是一beginner straightforward意识。