簽名爲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()會在最短的迭代中停止。我不確定爲什麼這個改變完成了。 –