これを考慮してください(Python 3.3):
a=enumerate([2,3,5])
print(list(a))
print(list(a))
2回の印刷呼び出しで異なるものを印刷することを本当に期待していますか?私もしませんでした。
set
リストを、、tuple
またはに置き換えても同じことが起こりますdict
。enumerate
オブジェクトをmap
またはに置き換えた場合にも発生しますfilter
が、不思議なことに、オブジェクトをに置き換えた場合は発生しませんrange
。
多分それは機能です。しかし、それは非常に驚くべきことであり、文書化されておらず(少なくとも私はそれについて何も見つけることができませんでした)、一貫性がありません(範囲は異なって機能します)。どう思いますか?