Howto flaten a list of lists was (Explanation of this Python language feature)

Mark H Harris harrismh777 at gmail.com
Fri Mar 28 17:56:37 EDT 2014


On Fri, Mar 21, 2014 at 1:42 PM, vasudevram <vasudevram at gmail.com> wrote:
 >> Can anyone - maybe one of the Python language core team, or someone 
 >> with knowledge of the internals of Python - can explain why this 
 >> code works, and whether the different occurrences of the name x in 
 >> the expression, are in different scopes or not? :
 >>
 >> x = [[1,2], [3,4], [5,6]]
 >>     [x for x in x for x in x]

 > I'll give this +1 for playfulness, and -2 for lack of clarity.

 > I hope no one thinks this sort of thing is good to do in real-life code.

No. This has to be a better way to flatten lists:

 >>> from functools import reduce

 >>> import operator as λ

 >>> reduce(λ.add, l)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

 >>>


marcus



More information about the Python-list mailing list