La signature pour map
estComment puis-je obtenir la fonctionnalité Python2.x `map` dans Python3.x?
map(function, iterable[, iterables[, ...]])
En Python 2.x si function
est l'identité None
suppose, et iterables courts sont rembourrés avec « Aucun » pour la durée de la plus longue itérables.
3.x Python si function
est None
vous obtenez finalement une exception:
TypeError: 'NoneType' object is not callable
et tous iterables rognées à la longueur de la plus courte.
C'est un couple de changements assez drastiques. Comment puis-je récupérer la sémantique 2.x? Oh, et il retourne maintenant un itérateur au lieu d'une liste, mais je suis d'accord avec ce changement. ;)
Ceci est utile pour les cas où vous ne savez pas à l'avance quelle fonction, le cas échéant, sera appliquée - juste parce que vous n'êtes pas transformez en fait la itérables ne signifie pas que vous n Je ne veux pas son contenu.
Notez que cela n'a rien à voir avec de la fonction est "None" ou pas. Vous n'avez pas "finalement" l'erreur, vous l'obtenez la première fois. Vous ne pouvez simplement pas passer à None. Le problème est que map() dans Python 3 s'arrêtera à l'itération la plus courte. Je ne suis pas sûr de savoir pourquoi ce changement a été fait. –