問題タブ [list-comprehension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ジェネレータ式とリスト内包表記
Python でいつジェネレーター式を使用し、いつリスト内包表記を使用する必要がありますか?
python - リスト内包表記を使用して、Python の 2D 配列を 1 つの文字列にマージするにはどうすればよいですか?
私にとってリスト内包表記は、正規表現が私にとって不透明な花崗岩のブロックのように思えます。ポインターが必要です。
たとえば、2D リストがあるとします。
これを1つの長いリストにマージしたい
またはセパレーター付きの文字列に:
本当に、私は両方を行う方法を知りたいです。
python - Python リスト内包表記内で計算された値を効率的にフィルタリングするにはどうすればよいですか?
Python のリスト内包表記構文を使用すると、内包内の値を簡単にフィルター処理できます。例えば:
mylist 内の整数の 2 乗のリストを返します。しかし、テストに (コストのかかる) 計算が含まれていて、結果をフィルタリングしたい場合はどうでしょうか? 1 つのオプションは次のとおりです。
これにより、"偽" ではない高価な (x) 値のリストが生成されますが、それぞれの x に対して高価な () が 2 回呼び出されます。xごとに1回だけ高価な呼び出しを行いながら、このテストを実行できる理解構文はありますか?
functional-programming - スキームのリスト内包表記ライブラリ?
Common Lisp ( incf-cl )用のリスト内包表記ライブラリがあることは知っていますが、それらが他のさまざまな関数型 (および非関数型) 言語 (F#、Erlang、Haskell、および C#) でネイティブにサポートされていることも知っています。スキームのリスト内包表記ライブラリ?
incf-cl はマクロを使用したライブラリとして CL に実装されています。同じ手法を使用して、Scheme 用のライブラリを作成することは可能ではないでしょうか?
python - map() とリスト内包表記の結果が異なるのはなぜですか?
次のテストは失敗します。
言い換えると:
python - 反復可能なもので一致する要素をカウントする最もpythonicな方法
2 で割り切れるすべての数と 3 で割り切れるすべての数の数など、単純な統計を収集したい反復可能なエントリがあります。
私の最初の選択肢は、リストを一度だけ反復し、リストの展開を回避する (そして分割ループのリファクタリングを念頭に置く) ことですが、かなり肥大化したように見えます。
(代替 1)
これはかなり見栄えがしますが、式をリストに展開するという欠点があります。
(代替 2)
私が本当に欲しいのは、次のような関数のようなものです:
(代替 3)
しかし、これは関数なしで実行できるものによく似ています。最終的なバリアントは次のとおりです。
(代替 4)
最小 (そして私の本ではおそらく最もエレガント) ですが、意図をうまく表現していないように感じます。
だから、あなたへの私の質問は次のとおりです。
これらのタイプの統計を収集するには、どの代替手段が最適ですか? より良いものがあれば、自由に独自の代替案を提供してください。
以下の混乱を解消するために:
- 実際には、私のフィルター述語は、この単純なテストよりも複雑です。
- 繰り返し処理するオブジェクトは、単なる数値よりも大きく複雑です
- 私のフィルター関数はより異なっており、1 つの述語にパラメーター化するのが難しい
openoffice.org - Open Office スプレッドシートでのリスト内包表記
リスト内包表記は非常に便利なコード メカニズムであり、Haskell、Python、Ruby などのいくつかの言語で使用されています (頭の中でいくつか挙げただけです)。私は構造に精通しています。
私は Open Office スプレッドシートで作業していて、かなり一般的なことを行う必要があります。上限と下限の間にあるセル範囲内のすべての値をカウントしたいのです。私は即座に、リスト内包表記でうまくいくだろうと考えましたが、Open Office で類似のものを見つけることができませんでした。「COUNTIF」という関数があり、似たようなものですが、必要なものではありません。
リストの理解に使用できる Open Office の構造はありますか?
list-comprehension - 内包表記をリストする REBOL 関数を何と呼べばよいですか?
REBOL には、リスト内包表記を実行する組み込みの方法がありません。しかし、REBOL には、parse
ドメイン固有言語 (DSL) を作成するために使用できる強力な機能 ( として知られている) があります。私はparse
、リスト内包表記のためにそのようなミニ DSL を作成していました。表現を解釈するために、内包表記を含むブロックが関数に渡されcomprehend
ます。
例:
どういうわけか、comprehend
私には正しく聞こえませんが、のようなものeval
は一般的すぎます。
リスト内包表記にキーワードまたは関数を必要とする他の言語は見つかりませんでした。それらが存在する場合は、純粋な構文糖衣です。残念ながら、私にはその選択肢がありません。では、関数を持たなければならないことを考えると、適切で簡潔な論理名は何でしょうか?
python - Python での予期しないリスト内包表記の動作
ネストされたスコープ規則とリスト内包表記の組み合わせに悩まされていると思います。 Jeremy Hylton のブログ投稿は原因について示唆に富んでいますが、CPython の実装を十分に理解していないため、これを回避する方法を理解することができません。
これは(複雑すぎる?)例です。人々がそれをデモする簡単なものを持っているなら、私はそれを聞きたい. 問題: next() を使用したリスト内包表記は、最後の反復の結果で埋められます。
編集:問題:
これで正確に何が起こっているのですか?どうすれば修正できますか? 標準の for ループを使用する必要がありますか? 明らかに、関数は正しい回数実行されていますが、リスト内包表記は各ループの結果ではなく、最終的な値で終わります。
いくつかの仮説:
- 発電機?
- リスト内包表記の遅延充填?
コード
出力
ruby - Ruby でのリスト内包表記
Python のリスト内包表記と同等の処理を行うために、次のようにしています。
これを行うためのより良い方法はありますか...おそらく1つのメソッド呼び出しで?