さんが書いてくれたヤツがあったので、パフォーマンス的にはどれが良いのかというを計測してみようとおもいます。いうのもあまり普段ベンチマークとかとらないなぁ、ちゃんとしなきゃなぁと思ったのでやってみた次第です。自分が思いついたのも含めて、4つの下記関数を計測しようと思います。各関数の計測をするにあたって、Benchmakerモジュールというのがよさげだったのでこれを利用します。hexacosa.net計測のコードはこんな風にしました。Benchmakerいいですね。withをサポートしてて、withブロックで囲むだけで計測対象になるので楽ですね。func))計測をするにあたっての留意点です。最終的に結果として欲しいのはリスト型とします。ジェネレータを返すので、list関数でキャストしています。最初に渡すリストは結果の差異がわかりやすいように巨大にしています。このコードを実行すると、下記のような結果になります。1番速かったようです。3と4はやっぱrangeで作り直してるだけあってダメダメでしたね。ジェネレータが返ってくるのをわざわざリストにキャストしてもったいないですね。結果はリストでなくても良いと条件を変更したら、どれだけ変わるんでしょうねというのを計ってみました。コードではlist関数を除去しました。func)結果はこんな感じ。1番に躍り出ました!実質的に処理が実行されていないので、当然の結果ですけど。ジェネレータいいですね。listでキャストしてるじゃないか。