What does the last line mean in the following code?
import pickle, urllib
handle = urllib.urlopen("http://www.pythonchallenge.com/pc/def/banner.p")
data = pickle.load(handle)
handle.close()
for elt in data:
print "".join([e[1] * e[0] for e in elt])
My attempt to the problem:
- "".join… uses join -method to empty text
- e[1] * e[0] multiplies two subsequent values in the sequence, e
- I am not sure what is e
- I am not sure, what it means, when you have something before for -loop, like:
e[1] * e[0] for e in elt
Best Solution
Maybe best explained with an example:
is the short form of
List comprehensions are simply syntactic sugar for
for
loops, which make an expression out of a sequence of statements.elt
can be an arbitrary object, since you load it from pickles, ande
likewise. The usage suggests that is it a sequence type, but it could just be anything that implements the sequence protocol.