Если вы готовы отказаться от крошечной скорости для более чистого вида, вы можете использовать numpy.concatenate().tolist()
или numpy.concatenate().ravel().tolist()
:
import numpy
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]] * 99
%timeit numpy.concatenate(l).ravel().tolist()
1000 loops, best of 3: 313 µs per loop
%timeit numpy.concatenate(l).tolist()
1000 loops, best of 3: 312 µs per loop
%timeit [item for sublist in l for item in sublist]
1000 loops, best of 3: 31.5 µs per loop
Вы можете узнать больше здесь, в docs numpy.concatenate и numpy.ravel
у нас есть именно этот рецепт здесь, в http://www.sqlalchemy.org/trac/wiki/UsageRecipes/PreFilteredQuery