問題タブ [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 投票する
1 に答える
2583 参照

python - 辞書の値を条件付きで置き換えるための1つのライナー

リスト内包表記を使用してこれを表現するためのより良い方法はありますか?または、これを1行で表現する他の方法はありますか?

元のディクショナリの各値をcolディクショナリの対応する値に置き換えるか、colディクショナリにない場合は変更しないでください。

0 投票する
11 に答える
262468 参照

python - リスト内包表記における二重反復

Python では、次のように、リスト内包表記に複数の反復子を含めることができます。

いくつかの適切なシーケンス a および b。私は、Python のリスト内包表記の入れ子になったループのセマンティクスを認識しています。

私の質問は次のとおりです: 内包内の 1 つの反復子が他の反復子を参照できますか? 言い換えれば、次のようなものがありますか:

外側のループの現在の値は、内側の反復子ですか?

例として、ネストされたリストがある場合:

この結果を達成するためのリスト内包表記は次のようになります。

?? (これは私が知りたいことなので、理解できる回答のみをリストしてください)。

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

python - Python でのリスト内包表記 : リスト内の効率的な選択

要素のリストがあり、特定の関数 (たとえば、他の要素までの距離) に従って、それらの一部のみを選択したいとします。

結果として、距離と要素を含むタプルのリストが必要です。だから、私は次のコードを書いた

しかしmyFunction、非常に時間のかかる機能であり、originalListかなり大きいです。そのようにmyFunctionすると、選択した要素ごとに が 2 回呼び出されます。

では、これを回避する方法はありますか??

他に 2 つの可能性がありますが、あまり良くありません。

  1. 最初のものは、フィルタリングされていないリストを作成することです

    そしてそれを並べ替えます

    しかし、その場合、私は私のものを複製し、 originalListいくらかのメモリを浪費します (リストは非常に大きくなる可能性があります - 10,000 要素以上)

  2. 2 つ目はトリッキーで、あまり Pythonic ではありませんが、効率的です (関数は要素ごとに 1 回評価する必要があるため、できる限りのことです)。myFunction最後の
    結果をグローバル変数(lastResultたとえば)に保存し、この値はリスト内包表記で再利用されます

    /li>

効率的でPythonicな方法でそれを達成するためのより良いアイデアはありますか??

回答ありがとうございます。

0 投票する
8 に答える
19536 参照

python - リスト内包表記を使用して文字列を dict に変換する

私はこの問題に何度か遭遇しましたが、簡単な解決策を見つけられないようです。文字列があるとします

これを、a、b、c をキーとし、0、1、3 をそれぞれの値 (int に変換) とする辞書に変換したいと考えています。明らかに私はこれを行うことができます:

しかし、私はその for ループがあまり好きではありません。非常に単純に見えるので、ある種のリスト内包表記に変換できるはずです。これは、 が文字列になる可能性がある、少し単純なケースで機能しvalます。

ただし、その場で val を int に変換する必要があり、このようなことを行うのは構文的に正しくありません。

私の質問は次のとおりです。リスト内包表記を使用して for ループを排除する方法はありますか? そうでない場合、私のためにそれを行うPythonメソッドが組み込まれていますか?

0 投票する
13 に答える
274655 参照

python - リスト内包表記とマップ

map()リスト内包表記またはその逆を使用することを好む理由はありますか? それらのどちらかが一般的に効率的ですか、それとも一般的に他のものよりもpythonicと見なされますか?

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

php - PHP には Python のリスト内包表記に相当する構文がありますか?

Python には、構文的に優れたリスト内包表記があります。

PHP では、いくつかのループを実行する必要があります。

取得するため:

配列 ( [0] => 0 [1] => 1 [2] => 4 [3] => 9 [4] => 16 [5] => 25 [6] => 36 [7] => 49 [8] => 64 [9] => 81 )

PHPで同様のリスト内包表記を取得する方法はありますか? とにかく、PHP 5.3 の新機能のいずれかでそれを行うことはありますか?

ありがとう!

0 投票する
3 に答える
10366 参照

python - リスト内包から得られる結果の順序は保証されていますか?

リスト内包表記を使用する場合、新しいリストの順序は何らかの方法で保証されますか?不自然な例として、リスト内包表記の定義によって保証される次の動作は次のとおりです。

同様に、次の平等が保証されていますか。

具体的には、ここで興味のある順序です。

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

python - Pythonでリスト内包表記を使用してネストされたリストをマッピングしますか?

次のコードを使用して、Pythonでネストされたリストをマップし、同じ構造のリストを作成します。

これは、リスト内包表記のみで(マップ関数を使用せずに)実行できますか?

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

scala - Scala の for-comprehensions: 重要な機能または構文糖衣?

私が最初に Scala を見始めたとき、for 内包表記の外観が気に入りました。これらは、私が Java 5 で慣れ親しんだ foreach ループに少し似ているように見えましたが、機能的な制限と多くの優れた構文があります。

しかし、Scala スタイルに慣れてきたので、for 補償を使用できるたびに、代わりにmap, flatMap, filter, reduceandを使用していることに気付きました。foreachそうすれば、コードの意図がより明確になり、潜在的な隠れた驚きが少なくなり、通常はコードも短くなります。

私の知る限り、for-comprehension は常にこれらのメソッドにコンパイルされているので、疑問に思っています: それらは実際には何のためにあるのでしょうか? 機能の再評価が欠けていますか (これは初めてではありません)。for-comprehensions は、他の機能ではできないことをしますか、または少なくともはるかに不器用になりますか? それらは特定のユースケースの下で際立っていますか? それは本当に個人的な好みの問題ですか?

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

python - Pythonでの詳細なリスト内包

整数のリストがあり、すべての要素が指定された制限よりも小さい新しいリストを作成したいと思います。

この問題を解決するための私のアプローチは

私には、最初の「i foriin」はかなり冗長に見えます。Pythonでより良い実装はありますか?