問題タブ [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.

0 投票する
5 に答える
15847 参照

c# - C# には、Python のリスト内包表記に匹敵するものがありますか?

C#でリストを生成したい。Python のリスト内包表記がありません。リスト内包表記やジェネレーター式が Python で行うように、その場でコレクションを作成する C# の方法はありますか?

0 投票する
4 に答える
4213 参照

python - Pythonでは、複数のイテレータでリスト内包表記を使用する簡潔な方法はありますか?

基本的に、2 つの反復子の「デカルト積」に対するリスト内包表記を構築したいと考えています。次のHaskell コードについて考えてみます。

利回り

簡潔な方法で Python で同様の動作を得ることができますか?

0 投票する
23 に答える
200351 参照

python - Python で浅いリストをフラット化する

リスト内包表記を使用してイテラブルのリストをフラット化する簡単な方法はありますか、またはそれが失敗した場合、パフォーマンスと読みやすさのバランスを取りながら、このような浅いリストをフラット化する最良の方法は何だと思いますか?

次のように、ネストされたリスト内包表記でそのようなリストをフラット化しようとしました。

NameErrorでもそこの品種に困ってしまうのは、 name 'menuitem' is not defined. グーグルでスタック オーバーフローを調べたところ、reduce次のステートメントで目的の結果が得られました。

しかし、x は Djangoオブジェクトlist(x)であるため、このメソッドを呼び出す必要があるため、このメソッドはかなり判読できません。QuerySet

結論

この質問に貢献してくれたすべての人に感謝します。これが私が学んだことの要約です。また、他の人がこれらの観察に追加または修正したい場合に備えて、これをコミュニティ wiki にしています。

私の元の reduce ステートメントは冗長であり、次のように記述した方が適切です。

これは、ネストされたリスト内包表記の正しい構文です (見事な要約dF !)。

しかし、これらの方法はどちらも を使用するほど効率的ではありませんitertools.chain:

@cdleary が指摘してchain.from_iterableいるように、次のように使用して * 演算子の魔法を回避する方がおそらくより良いスタイルです。

0 投票する
5 に答える
1188 参照

python - Python dictで兄弟辞書の値にアクセスする最も効率的な方法は何ですか?

Python では、次のような辞書のリストがあります。

そして、変数があります:

アイテムのドメイン値を取得する最も効率的な方法は何ですか?

0 投票する
9 に答える
25430 参照

python - (リスト内包表記/for ループで) ラムダのリストを作成するにはどうすればよいですか?

Python で定数のリストからラムダ オブジェクトのリストを作成したいと考えています。例えば:

ただし、これを実行すると、ラムダ オブジェクトのリストが作成されます。

私はそれが印刷されることを期待します

代わりに、次のように出力します。

ラムダにすべて間違ったパラメータが与えられているようです。私は何か間違ったことをしましたか?それを修正する方法はありますか? 私はPython 2.4にいると思います。

編集:もう少し試してみると、これが思いつきました:

予想される 1 から 25 までの正方形を出力しますが、以前の print ステートメントを使用します。

それでも私にすべて25のsを与えます。これら 2 つの印刷呼び出しの間で、既存のラムダ オブジェクトはどのように変化したのでしょうか?

関連する質問: map() とリスト内包表記の結果が異なるのはなぜですか?

0 投票する
4 に答える
22455 参照

python - シーケンスのシーケンスを平坦化するための理解?

シーケンスのシーケンス (おそらくタプルのリスト) がある場合は、 itertools.chain() を使用してフラット化できます。しかし、理解として書きたいと思うこともあります。私はそれを行う方法を理解できません。これは非常に解釈されたケースです:

シーケンス内のすべてのペアの要素を交換したいとしましょう。ここでは文字列をシーケンスとして使用します。

シーケンスの偶数スライスと奇数スライスで zip を使用してペアを交換します。しかし、フラット化する必要があるタプルのリストができあがります。だから私は chain() を使います。代わりに理解して表現する方法はありますか?

ペアの要素を交換するという基本的な問題に対する独自の解決策を投稿したい場合は、先に進んでください。何か新しいことを教えてくれるものは何でも賛成票を投じます。ただし、回答が「いいえ、できません」であっても、私の質問を対象とした回答のみを承認済みとしてマークします。

0 投票する
2 に答える
2159 参照

python - Python: リスト内包表記の戦術

文字列を取り、元の文字列を構築する文字列のリストを作成しようとしています。

例えば:

それを行うための「pythonic」方法があると確信しています。私はちょうど私の心を失っていると思います。これを行うための最良の方法は何ですか?

0 投票する
7 に答える
103941 参照

python - Python: リスト要素ごとに、リスト全体に関数を適用します

与えられ[1,2,3,4,5]た、どうすれば次のようなことができますか

すべての結果を保存し、最小値を見つけて、最小値を見つけるために使用された 2 つの数値を返したいと思います。したがって、上記の場合は返品したいと思い(1,5)ます。

だから基本的に私は次のようなことをしたいと思います

リスト内の各要素iに対して、リスト内のすべての要素に何らかの関数をマップし、 をパラメータとして取りij結果をマスター リストに格納し、マスター リスト内の最小値を見つけ、この最小値の計算iに使用される引数を返します。j

私の実際の問題では、リストオブジェクト/座標があり、使用している関数は2つの座標を取り、ユークリッド距離を計算します。任意の 2 点間の最小ユークリッド距離を見つけようとしていますが、凝ったアルゴリズムは必要ありません。

0 投票する
6 に答える
12431 参照

python - Python のリスト内包表記を理解する上での問題

次のコードの最後の行は何を意味していますか?

問題への私の試み:

  • "".join... join メソッドを使用してテキストを空にします
  • e[1] * e[0] は、シーケンス内の後続の 2 つの値 e を乗算します。
  • e が何かわかりません
  • for ループの前に次のようなものがある場合、それが何を意味するのかわかりません。e[1] * e[0] for e in elt