签名为map
是如何在Python3.x中获得Python2.x`map`功能?
map(function, iterable[, iterables[, ...]])
在Python 2.x的,如果是function
身份None
假设,和短iterables与“无”到最长可迭代的长度填充。
在Python 3.x中,如果function
为None
,你最终会得到一个异常:
TypeError: 'NoneType' object is not callable
和所有iterables被修剪到最短的长度。
这是一对非常激烈的变化。我如何获得2.x语义?
哦,它现在返回一个迭代器而不是一个列表,但我对这个变化没问题。 ; - 只是因为你没有真正转化迭代并不意味着你不)
,你不提前知道哪些功能,如果有的话,将被应用的时间。这是非常有用的情况不想要它的内容。
注意,这无关功能是“无”或没有。你不会“最终”得到错误,你第一次得到它。你根本无法再通过None。问题在于,Python 3中的map()会在最短的迭代中停止。我不确定为什么这个改变完成了。 –