[Python-Dev] Adding concat function to itertools
Raymond Hettinger
python at rcn.com
Fri Sep 28 23:53:42 CEST 2007
[Bruce Frederiksen]
>>>> I've added a new function to itertools called 'concat'. This
>>>> function is
>>>> much like chain, but takes all of the iterables as a single
>>>> argument.
[Raymond]
>> Any practical use cases or is this just a theoretical improvement?
>>
>> For Py2.x, I'm not willing to unnecessarily expand the module.
>> However, for Py3k, I'm open to changing the signature for chain().
[Bruce]
> For me, a fraction of chain() uses are of the * variety:
>
> d = defaultdict(list)
> allvals = chain(*d.values())
>
> return chain(*imap(cache.__getitem__, keylist))
>
> Interestingly, they seem to all have something to do with dictionary
> values() that are themselves iterable.
I see. These are instances of a recurring general use case of
chain() as a one-level flattener.
Will give consideration to changing the signature of chain() for Py3.0.
Besides the concat() variation using a single iterable input, another
alternative is the min()/max() style signature where one input is
interpreted as iterable and multiple arguments as comprising an
input tuple.
Raymond
More information about the Python-Dev
mailing list