問題タブ [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.
python - map() とリスト内包表記の結果が異なるのはなぜですか?
次のテストは失敗します。
言い換えると:
python - ネストされた/複数のリスト内包表記またはジェネレータ式のユースケース。いつよりエレガントになりますか?
私は時々この種のものを見ます:
今、これは本当に私の脳を曲げます、そして私はむしろそれがこのように提示されなかったと思います。
ネストされたループである場合よりもエレガントで読みやすい、これらのネストされた式を使用したユースケースや例はありますか?
編集:これを単純化する方法の例をありがとう。実は私が求めていたものではなく、エレガントな時期はあるのではないかと思っていました。
python - Django カスタム クエリセット フィルタ
Django で、クエリセット用の複雑なカスタム フィルターを作成する標準的な方法はありますか?
私が書くことができるように
私はこのようなことをしたいと思います:
ジェネレータ式を使用できます
しかし、それは連鎖可能性とクエリセットが提供する他の機能を失います。
python - リスト内包表記を使用して文字列を dict に変換する
私はこの問題に何度か遭遇しましたが、簡単な解決策を見つけられないようです。文字列があるとします
これを、a、b、c をキーとし、0、1、3 をそれぞれの値 (int に変換) とする辞書に変換したいと考えています。明らかに私はこれを行うことができます:
しかし、私はその for ループがあまり好きではありません。非常に単純に見えるので、ある種のリスト内包表記に変換できるはずです。これは、 が文字列になる可能性がある、少し単純なケースで機能しval
ます。
ただし、その場で val を int に変換する必要があり、このようなことを行うのは構文的に正しくありません。
私の質問は次のとおりです。リスト内包表記を使用して for ループを排除する方法はありますか? そうでない場合、私のためにそれを行うPythonメソッドが組み込まれていますか?
python - このgenexpのパフォーマンスがリスト内包表記よりも悪いのはなぜですか?
特定のフィルターに一致するリスト内のアイテムの数を数える最も簡単な方法を見つけようとしていました。この場合、リストに奇数がいくつあるかを見つけます。
これを行っている間、リスト内包表記と同等のジェネレータ式を比較した結果に驚きました。
また、Lを通常のリストとし、サイズを変えてみましたが、すべての場合でリスト内包表記が優先されます。
100万アイテムの新しいリストを作成するlistcompと比較して、genexpの動作が遅くなる原因は何ですか...?
(ところで、私が見つけた最速の方法は次のとおりx = 1; len(filter(x.__and__, L))
です。そして、はい、私は子猫を殺すようなコードを書くことを知っています、私はそれを楽しむためにそれをやっています)
python - リスト内包表記またはジェネレーター式で while を使用する
リスト内包表記/ジェネレーター式でif
andを次のように使用できますfor
これが最も効率的ではないことはわかっていますが、条件がはるかに複雑になる可能性があるため、我慢してください。これは単なる例です。ただし、これはまだ100回の反復を経ており、最初の6回の値しか得られません。次のようなもので停止する場所をジェネレータ式に伝える方法はありますか:
ただし、while
ジェネレータ式では理解されません。ですから、私の質問は、新しい値が生成されなくても計算を続行しないように、停止条件を指定してジェネレーター式を作成するにはどうすればよいかということです。
python - 構文の奇妙なpython、これはどのように機能しますか、それは何と呼ばれましたか?
Python 2.6 の使用
3 は私をうんざりさせています。何が起こっているのかを説明しようとしています。
for i in range(4) は、4 回ループするループを作成し、各ループの開始時に i を 0 から 3 にインクリメントします。[このコンテキストで 3 が何を意味するのかわかりません...] max() は、渡された最大の iterable を返し、結果が画面に出力されます。
python - Pythonでレイジーシーケンスを構築する方法はありますか?
Member
特定のフィルターを使用してデータベースからオブジェクトをロードするDjangoビューがあります。
次に、このロジックを変更して特定Member
の最初のロジックを提示し、残りを自然な順序で実行する必要があります。
最も簡単な方法は、クエリをすぐに実行し、リストを取得し、最初にアイテムを削除して挿入することです。しかし、の怠惰な性質を利用する方法がまだあるかどうか、QuerySet
私は最も興味があります。
C#では、次のように記述します。
ループが通過するmembers
とき、最初に取得してから、元の遅延読み込みロジックがspecificMember
使用したものを使用します。db.Members
DjangoとPythonで同じことをする方法はありますか?
python - Python では、ジェネレーター式内で呼び出された関数からの戻り値をどのように参照できますか?
簡単に言うと、私はこのようなことをしたい:
もちろん、それはうまくいきません。
現在、私は使用しています:
2番目のコード部分がどのように行われるのか、別の構文があるのか、それとも効率的でないのか、私にはわかりません。私はPythonを始めて2週間しか経っていません。
python - Python ジェネレーター式の括弧の奇妙さ
リストに特定の文字列が含まれているかどうかを判断したいので、次のようにジェネレータ式を使用します。
もちろん、これをインライン化したいので、次のようにします。
次に、単一の括弧で見栄えが良くなると思うので、次を試します:
本当にうまくいくとは思っていません。サプライズ!します!
それで、これは合法的なPythonですか、それとも私の実装が許可するものですか? 合法である場合、ここでの一般的なルールは何ですか?