<p dir="ltr"><br>
On Aug 15, 2015 6:52 PM, "Guido van Rossum" <<a href="mailto:guido@python.org">guido@python.org</a>> wrote:<br>
><br>
> On Sun, Aug 16, 2015 at 1:17 AM, Emile van Sebille <<a href="mailto:emile@fenx.com">emile@fenx.com</a>> wrote:<br>
>><br>
>> On 8/15/2015 12:18 PM, Mark Tse wrote:<br>
>>><br>
>>> Currently, when the function for map() returns a list, the resulting object<br>
>>> is an iterable of lists:<br>
>>><br>
>>>>>> list(map(lambda x: [x, x], [1, 2, 3, 4]))<br>
>>><br>
>>> [[1, 1], [2, 2], [3, 3], [4, 4]]<br>
>>><br>
>>> However, a function to convert each element to multiple elements, similar<br>
>>> to flatMap (Java) or SelectMany (C#) does not exist, for doing the<br>
>>> following:<br>
>><br>
>><br>
>> In addition to the itertools solutions already posted, there's also a flatten function that'll do it:<br>
>><br>
>> Python 2.7.6 (default, Mar 22 2014, 22:59:56)<br>
>> [GCC 4.8.2] on linux2<br>
>> Type "help", "copyright", "credits" or "license" for more information.<br>
>> >>> from compiler.ast import flatten<br>
>> >>> flatten ((map(lambda x: [x, x], [1, 2, 3, 4])))<br>
>> [1, 1, 2, 2, 3, 3, 4, 4]<br>
>> >>><br>
><br>
><br>
> That function isn't meant for public consumption though.</p>
<p dir="ltr">* notes about flatten in toolz: <a href="https://github.com/pytoolz/toolz/issues/176">https://github.com/pytoolz/toolz/issues/176</a><br>
* flatten in fn.py: <a href="https://github.com/kachayev/fn.py#itertools-recipes">https://github.com/kachayev/fn.py#itertools-recipes</a></p>
<p dir="ltr">><br>
> -- <br>
> --Guido van Rossum (<a href="http://python.org/~guido">python.org/~guido</a>)<br>
><br>
> _______________________________________________<br>
> Python-ideas mailing list<br>
> <a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-ideas">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
> Code of Conduct: <a href="http://python.org/psf/codeofconduct/">http://python.org/psf/codeofconduct/</a><br>
</p>