About Me

My photo
i'm a laugning jack-o'-lantern

Tuesday, July 19, 2011

One more tricky thing I like in python

For example, I've got the list of iterable objects:
>>> l = [[1,2,3], [4,5,6], [7,8]]
And I need to get linear list of all elements in those iterables. Here's the trick, related to the list comprehension, I've learned couple of weeks ago:
>>> ll = [i for j in l for i in j]
>>> print ll
... [1, 2, 3, 4, 5, 6, 7, 8]

This constuction may be found a bit complicated at the first glance, but if we'll look at it, we'll get that that's similar to the following code:
>>> for j in l:
>>>     for i in j:
>>>         yield i