I have no problem for understanding this:
a = [1,2,3,4] b = [x for x in a]
I thought that was all, but then I found this snippet:
Effectively:
...for xs in a...]
is iterating over your main (outer) list and returning each of your sublists in turn.
...for x in xs]
is then iterating over each of these sub lists.
This can be re-written as:
b = [] for xs in a: for x in xs: b.append(x)