[Python-ideas] textFromMap(seq , map=None , sep='' , ldelim='', rdelim='') (original) (raw)

Terry Reedy tjreedy at udel.edu
Mon Oct 25 21:27:52 CEST 2010


On 10/25/2010 9:49 AM, spir wrote:

Hello,

A recommended idiom to construct a text from bits -- usually when the bits themselves are constructed by mapping on a sequence -- is to store the intermediate results and then only join() them all at once. Since I discovered this idiom I find myself constantly use it, to the point of having a func doing that in my python toolkit: def textFromMap(seq , map=None , sep='' , ldelim='',rdelim=''):

'map' is a bad parameter name as it 1. reuses the builtin name and 2. uses it for a parameter (the mapped function) of that builtin.

...

(2) I think the same about join: should be "seq.join(sep)" since for me the object on which the method applies is seq, not sep.

The two parameters for the join function are a string and an iterable of strings. There is no 'iterable of strings' class, so that leaves the string class to attach it to as a method. (It once was just a function in the string module before it and other functions were so attached.) The fact that the function produces a string is another reason it should be a string method. Ditto for bytes and iterable of bytes.

-- Terry Jan Reedy



More information about the Python-ideas mailing list