Warum gibt map ein Map-Objekt anstelle einer Liste in Python 3 zurück?

Ich interessiere mich für das Verständnis derneues Sprachdesign von Python 3.x.

Ich genieße, in Python 2.7, die Funktionmap:

Python 2.7.12
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: [2, 3, 4]

In Python 3.x haben sich die Dinge jedoch geändert:

Python 3.5.1
In[2]: map(lambda x: x+1, [1,2,3])
Out[2]: <map at 0x4218390>

Ich verstehe das wie, aber ich konnte keinen Hinweis auf das warum finden. Warum haben die Sprachdesigner diese Wahl getroffen, was meiner Meinung nach sehr schmerzhaft ist? War dies für Arm-Wrestle-Entwickler, die sich an Listenverständnisse hielten?

IMO, Liste kann natürlich als @ gedacht werd Functors; und ich habe irgendwie gedacht worden, um auf diese Weise zu denken:

fmap :: (a -> b) -> f a -> f b

Antworten auf die Frage(8)

Ihre Antwort auf die Frage