News for hackers. Stuff that matters.
Re:Ruby and Python: pivot points by koenigdavidmj on Saturday January 22, 2011 @06:27PM (#2131335)
You can join several lists into a flattened list as well:

reduce(operator.add, list_of_lists)

You can not say sum(), sadly, because it forces a restriction that you only sum numbers.

Re:Ruby and Python: pivot points by dgouldin on Saturday January 22, 2011 @07:15PM (#2131431)
It's not pretty, but you can do it:

  >>> sum([['a', 'b', 'c'], ['d', 'e', 'f']], [])
  ['a', 'b', 'c', 'd', 'e', 'f']
This makes use of the optional start argument and list add operator. However, Python's docs suggest using itertools.chain instead:

http://docs.python.org/library/functions.html#sum

  >>> import itertools
  >>> [l for l in itertools.chain(*[['a', 'b', 'c'], ['d', 'e', 'f']])]
  ['a', 'b', 'c', 'd', 'e', 'f']
(Of course you lose the benefit of a generator by using a list comprehension, but this is just an example.)
Re:Ruby and Python: pivot points by jacobolus on Saturday January 22, 2011 @07:46PM (#2131484)
Your second example is easier to just write as:

  >>> from itertools import chain
  >>> list_of_lists = [['a', 'b', 'c'], ['d', 'e', 'f']]
  >>> list(chain(*list_of_lists))
  ['a', 'b', 'c', 'd', 'e', 'f']
That is, list(«foo») is clearer and more idiomatic than [x for x in «foo»].
Re:Ruby and Python: pivot points by scottbessler on Sunday January 23, 2011 @10:31AM (#2132527)
I may be missing something, but why isn't skipping your list comprehension maintaining the benefit of using a generator?

   >>> from itertools import chain
   >>> chain(*[['a', 'b', 'c'], ['d', 'e', 'f']])
Re:Ruby and Python: pivot points by dgouldin on Monday January 24, 2011 @11:37PM (#2138010)
It is, but I don't get to show you the result of the chain that way. :)