一个小技巧,将一个 list 中的多个 list 合并为一个 list。有点绕,其实就是将类似如下形式的 list:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
转化为:
[1, 3, 4, 6, 7, 9]
很多人第一时间肯定会想到用迭代器:
[j for i in l for j in i]
但是,我猜应该有很多人不知道,Python 的内建函数 sum 同样可以用来干这样一件事:
sum(l, [])
sum 有两个参数,第二个参数可以用来指定一个初始值:
sum(sequence[, start]) -> value
Return the sum of a sequence of numbers (NOT strings) plus the value
of parameter 'start' (which defaults to 0). When the sequence is
empty, return start.
这里的原理其实是:
[] + [1, 3] + [4, 6] + [7, 9]
比较了一下用迭代器和sum函数所花的时间,发现 sum 略快: