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