需要のないページスマートフォン用の表示で見る需要のないページプログラミングや趣味や。この広告は、90日以上更新していないブログに表示しています。プログラミング能書き次のようなイテレータが欲しくなったことはないだろうか。5)これらを書いてみただけの話。Gist重複のないイテレータ出落ちのようだが、これについては公式リファレンスに言及がある。(太字は引用者)zip(*iterables)それぞれのイテラブルから要素を集めたイテレータを作ります。(中略)イテラブルの左から右への評価順序は保証されています。グループにクラスタリングするイディオムが使えます。チャンクに分割する効果があります。よって、これをそのまま用いて次のように書けばよい。)重複のあるイテレータ一方こちらのイテレータについては、リファレンスに言及がない。最初は単純に考え、次のようなコードを書いてみた。)しかしこの方法は、与えられた全てのイテレータをタプルに置き換えてしまう。意味合い的には分かりやすいが、実体化する時間的なコストがある。そこで、次のような二つの代替関数を用意した。)後述するとおり上記の代替関数のパフォーマンスはさして変わらない。好きな方を使うと良いだろう。*2実行速度の計測/比較ideal_it_Bを満たす三関数について、実行速度を比較してみた。13.36088結果を見ると、必ずしもfaster_Xが速いというわけではないことがわかる。simpleのボトルネックは、やはりイテレータのタプルへの置き換えのようだ。次のようにエイリアスを決めておくと、ストレスなく利用できるかもしれない。slide_each_simple悲しいオチ書いた記事が間違っていると恥ずかしい。従って、必死で調べる。その結果、自らのコーディングが車輪の再発明に過ぎないことを知るのだ。みなさんはこっちを使いましょう。私のコードに優位性を見出すとしたら、ミニマムなことくらいだと思う。*4追記:2018/02/01タイムリーにも、同様の記事がQiitaにアップされていた。このコードをちょいと書き換えて、more-itertoolsを含め再計測してみる。0.53994まじか。5~6倍の違いは覚悟していたが、まさか数十倍の差があるとは。逆に言えば高速化に関する良い題材となり得るので、今後解析しようと思う。*1:collections.abc.Iteratorを継承したクラスを作っても良いだろうが、却って状態が複雑になりそうなので今回は避けた。*2:ただし、私はクソコード大好き人間なので熱烈に前者を支持する。Miniconda実装のPython3.6.0である。*4:more_itertools.windowedの実装は、docstringを除いても30行を超える。クソコードを書きたい。検索プロフィールid:LouiSプログラミングや趣味や。*/はてなブログをはじめよう!LouiSさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。