[Python-ideas] Adding list.pluck()
Mathias Panzenböck
grosser.meister.morti at gmx.net
Sat Jun 2 21:54:56 CEST 2012
On 06/02/2012 08:50 PM, Westley Martínez wrote:
> On Sat, Jun 02, 2012 at 09:01:53PM +0300, Serhiy Storchaka wrote:
>> On 02.06.12 19:06, Guido van Rossum wrote:
>>> On Sat, Jun 2, 2012 at 8:54 AM, Mathias Panzenböck
>>> <grosser.meister.morti at gmx.net> wrote:
>>>>>> >from operator import itemgetter
>>>>>>> map(itemgetter('name'),stooges)
>>>> ['moe', 'larry', 'curly']
>>>
>>> If I saw this I would have to think a lot harder before I figured what
>>> it meant. (Especially without the output example.)
>>
>> And this is not true in Python 3.
>>
>> <map object at 0xb747970c>
>
> map returns a generator in Python 3.
Yes, yes. I opened a Python 2 shell to write the example code. Python 2 is still the default in most
(all?) Linux distributions. To get a list from that just wrap list() around it.
I consider this behaviour (that map returns a generator) in fact superior to what's available in
other languages. You can then pass that to whatever constructor you like (e.g. set() or tuple()) or
take only some of the values and then stop without calculating (and allocating) it all.
-panzi
More information about the Python-ideas
mailing list