私はこの質問に答えていて、次の問題に直面しました。
>>> from operator import add
>>> map(add,[1,2,3],[1,2])
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
map(add,[1,2,3],[1,2])
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'
map
パラメータで提供されている最小のイテレータが消費されたらすぐに停止したかったのです。
私は解決策を見つけました:
>>> from itertools import imap
>>> list(imap(add,[1,2,3],[1,2]))
[2, 4]
しかし、それはなぜですか?彼らの行動は一貫しているべきではありませんか?
それは私が問題を回避する最良の方法ですか?