reduce(lambda a,b:a+b, x, []) 4797.5895648
reduce(list.__add__, x, []) 4794.01214004
sum(x,[]) 4748.02929902
y = [];for z in x: y.extend(z) 56.9253079891
y = [];map(y.extend,x) 73.8642170429
y = [None]*400;del y[:];map(y.extend,x) 152.157783031
list(itertools.chain(*x)) 633.854824066
list(itertools.chain.from_iterable(x)) 629.917827129
[a for b in x for a in b] 89.6922459602
x = [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7],[5,6,7,8],[6,7,8,9],[7,8,9,10],[8,9,10,11]]*100
正如Óscar López所指出的,},因此不能与{}一起使用。除了建议使用}一起使用:
list.extend
返回{lambda
函数之外,还可以将list.__add__
与{试试这个:
问题是^{} 返回} 的函数必须返回一个值:到目前为止的累计结果。在
None
(这就是NoneType
的来源),而这与您想要做的不一样——传递给^{我认为值得注意的是:
也会起作用,我很肯定会比传递lambda来的更快。在
我很好奇不同方法的速度,所以我做了一些测试:
^{pr2}$还有PyPy(因为,为什么不呢)
结论:
sum
函数比reduce更快相关问题 更多 >
编程相关推荐