News for hackers. Stuff that matters.
Re:Ruby and Python: pivot points by axiak on Saturday January 22, 2011 @06:13PM (#2131301)
Except that it only makes sense in the context of strings, so it makes perfect sense to make it a string method.
Re:Ruby and Python: pivot points by djacobs on Saturday January 22, 2011 @06:21PM (#2131323)
It seems to me like join makes sense in any context where you have multiple elements that you want joined. With strings, you happen to have a separator. But you might also want to join several lists into one flattened list. (Edit: I know there are ways to do this. The point is that join could be unified around this concept.)

Even if you disagree, the line between methods and functions in Python really isn't standardized.

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. :)