パスワードを忘れた? アカウント作成
10269948 journal
Python

je1ocvの日記: リスト内包表記 5

日記 by je1ocv

リスト内包表記について勉強中。
forループより速いそうで。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年11月23日 22時31分 (#2500010)

    FORTRUNでコンピュータを学んだ者としては、
    なぜ implied-DO list; がCには無いのかと、歯がゆい場面がしばしば。

    • by Anonymous Coward

      30年も経っていたので2bit化けてしまいました。
      s/FORTRUN/FORTRAN/

  • by Anonymous Coward on 2013年11月23日 23時33分 (#2500027)

    単にインタプリタ/JITコンパイラの最適化がうんこという以上の、原理的に「内包表記>>>(超えられない壁)>>>forループ」となる何かがあるのでしょうか。あるとしたらそれは機械語上でどのような違いとなって現れるのでしょうか。

    • 機械語的にどうなるかはわかりませんが、いちいちappendしなくていい、という利点があるのだそうです。私もよく理解できてないですが。
      こちらにいろいろ書かれています。Pythonのリスト内包表記をdisる [hatenablog.com]

      --
      640GBはすべての人にとって未来永劫充分なメモリだ。
      親コメント
      • by Anonymous Coward

        どちらもappendはしているけど、内包表記の方は書く必要がない。既に組込になっているから、その分の最適化がされていて速いってことじゃないかな。

        でも、それはどの要素に対してもappendを必要としているからであって、ある条件を満たす値のみを取り出してリストを作る場合であれば、appendの実行をいくらか端折れるので、forループの方が速い場合もあるだろう。

        もっとも、そういう場合はfilterだけど。

typodupeerror

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

読み込み中...