インターネットからダウンロードしたコードを少し見ていました。基本的なWebクローラー用です。for私は次のループに出くわしました:
for link in (links.pop(0) for _ in xrange(len(links))):
...
今、私は次のコードも機能すると思います:
for link in links:
....
links=[]
調べてみると、最初のインスタンスがクリアlinksされ、も生成されることがわかりましたgenerator object (genexpr)。linksループで使用されることはないforため、長さが短くなることはコードとは関係ありません。
xrangeを使用し、毎回要素をポップする特別な理由はありますか?つまり、標準リストの要素を呼び出すよりもジェネレータオブジェクトを使用することに利点はありますか?さらに、どのような場合にジェネレータが役立つでしょうか。なぜ?