join list of lists in python [duplicate]
Is the a short syntax for joining a list of lists into a single list( or iterator) in python?
For example I have a list as follows and I want to iterate over a,b and c.
x = [["a","b"], ["c"]]
The best I can come up with is as follows.
result = []
[ result.extend(el) for el in x]
for el in result:
print el
import itertools
a = [['a','b'], ['c']]
print(list(itertools.chain.from_iterable(a)))
x = [["a","b"], ["c"]]
result = sum(x, [])
If you're only going one level deep, a nested comprehension will also work:
>>> x = [["a","b"], ["c"]]
>>> [inner
... for outer in x
... for inner in outer]
['a', 'b', 'c']
On one line, that becomes:
>>> [j for i in x for j in i]
['a', 'b', 'c']