問題タブ [generator-expression]

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 投票する
3 に答える
2494 参照

python - map() とリスト内包表記の結果が異なるのはなぜですか?

次のテストは失敗します。

言い換えると:

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

python - ネストされた/複数のリスト内包表記またはジェネレータ式のユースケース。いつよりエレガントになりますか?

私は時々この種のものを見ます:

今、これは本当に私の脳を曲げます、そして私はむしろそれがこのように提示されなかったと思います。

ネストされたループである場合よりもエレガントで読みやすい、これらのネストされた式を使用したユースケースや例はありますか?

編集:これを単純化する方法の例をありがとう。実は私が求めていたものではなく、エレガントな時期はあるのではないかと思っていました。

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

python - Django カスタム クエリセット フィルタ

Django で、クエリセット用の複雑なカスタム フィルターを作成する標準的な方法はありますか?

私が書くことができるように

私はこのようなことをしたいと思います:

ジェネレータ式を使用できます

しかし、それは連鎖可能性とクエリセットが提供する他の機能を失います。

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

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

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

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

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

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

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

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

python - このgenexpのパフォーマンスがリスト内包表記よりも悪いのはなぜですか?

特定のフィルターに一致するリスト内のアイテムの数を数える最も簡単な方法を見つけようとしていました。この場合、リストに奇数がいくつあるかを見つけます。

これを行っている間、リスト内包表記と同等のジェネレータ式を比較した結果に驚きました。

また、Lを通常のリストとし、サイズを変えてみましたが、すべての場合でリスト内包表記が優先されます。

100万アイテムの新しいリストを作成するlistcompと比較して、genexpの動作が遅くなる原因は何ですか...?

(ところで、私が見つけた最速の方法は次のとおりx = 1; len(filter(x.__and__, L))です。そして、はい、私は子猫を殺すようなコードを書くことを知っています、私はそれを楽しむためにそれをやっています)

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

python - リスト内包表記またはジェネレーター式で while を使用する

リスト内包表記/ジェネレーター式でifandを次のように使用できますfor

これが最も効率的ではないことはわかっていますが、条件がはるかに複雑になる可能性があるため、我慢してください。これは単なる例です。ただし、これはまだ100回の反復を経ており、最初の6回の値しか得られません。次のようなもので停止する場所をジェネレータ式に伝える方法はありますか:

ただし、whileジェネレータ式では理解されません。ですから、私の質問は、新しい値が生成されなくても計算を続行しないように、停止条件を指定してジェネレーター式を作成するにはどうすればよいかということです。

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

python - 構文の奇妙なpython、これはどのように機能しますか、それは何と呼ばれましたか?

Python 2.6 の使用

3 は私をうんざりさせています。何が起こっているのかを説明しようとしています。

for i in range(4) は、4 回ループするループを作成し、各ループの開始時に i を 0 から 3 にインクリメントします。[このコンテキストで 3 が何を意味するのかわかりません...] max() は、渡された最大の iterable を返し、結果が画面に出力されます。

0 投票する
1 に答える
932 参照

python - Pythonでレイジーシーケンスを構築する方法はありますか?

Member特定のフィルターを使用してデータベースからオブジェクトをロードするDjangoビューがあります。

次に、このロジックを変更して特定Memberの最初のロジックを提示し、残りを自然な順序で実行する必要があります。

最も簡単な方法は、クエリをすぐに実行し、リストを取得し、最初にアイテムを削除して挿入することです。しかし、の怠惰な性質を利用する方法がまだあるかどうか、QuerySet私は最も興味があります。

C#では、次のように記述します。

ループが通過するmembersとき、最初に取得してから、元の遅延読み込みロジックがspecificMember使用したものを使用します。db.Members

DjangoとPythonで同じことをする方法はありますか?

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

python - Python では、ジェネレーター式内で呼び出された関数からの戻り値をどのように参照できますか?

簡単に言うと、私はこのようなことをしたい:

もちろん、それはうまくいきません。

現在、私は使用しています:

2番目のコード部分がどのように行われるのか、別の構文があるのか​​、それとも効率的でないのか、私にはわかりません。私はPythonを始めて2週間しか経っていません。

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

python - Python ジェネレーター式の括弧の奇妙さ

リストに特定の文字列が含まれているかどうかを判断したいので、次のようにジェネレータ式を使用します。

もちろん、これをインライン化したいので、次のようにします。

次に、単一の括弧で見栄えが良くなると思うので、次を試します:

本当にうまくいくとは思っていません。サプライズ!します!

それで、これは合法的なPythonですか、それとも私の実装が許可するものですか? 合法である場合、ここでの一般的なルールは何ですか?