問題タブ [dictionary-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 に答える
170 参照

python - Python -- 同期されたリストからキー/値が取得されるエレガントな dict comp?

私は2つのエントリを持つ辞書を持っています:

トリガーはアクションに対応します。つまり、1 は 2 に対応し、4 はリスト [1,12,13,14] に対応します。これを平坦化し、数字をこれら 2 つの辞書に対応させる辞書を作成しようとしています。

したがって、私の究極の辞書は最初の 2 つを平坦化する必要がありますが、数字を最後の 2 つの辞書の対応するイベント名に置き換える必要があります。次のようになります。

これまでのところ、これで最初の 2 つを平らにすることができました。

(参考までに、self.alarmInfo はリストの最初のセットの辞書です)

したがって、2 つの質問: 1) 投稿したばかりの辞書理解を達成するためのよりエレガントな方法はありますか? 2) 数値を値に変換するためのエレガントな方法はありますか? 私は方法を考え続けていますが、それらは信じられないほど読みにくく、醜いものになってしまいます。ありがとう。

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

python - Dict の理解により、一見不当な NameError が生成される

brian2ニューラル ネットワークのシミュレーションを実行するために使用しています。各シミュレーション中にデータを記録するために、brian2SpikeMonitorクラスのインスタンスをいくつか作成しています。これらのモニターを、dict 内包表記を使用して作成された dict に格納したいと考えています。

テストとして、インタラクティブ セッションで以下を実行します。

すべてが素晴らしく見えます。しかし、このコードを次の関数に移動すると

それを呼び出すと、次のエラーが表示されます

何が起きてる?「pe_mt」関数内で定義されています。

次のように、辞書内包表記をリスト内包表記に変更すると、

エラーは発生しません。SpikeMonitor適切に定義されたオブジェクトのリストを取得します。

locals()[pop]現在消去されている回答は、代わりに使用することを示唆していますeval(pop)。これにより、同等のエラーが発生することに注意してください。

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

python - 辞書を作成および更新するための Python Dict 内包表記

辞書 (データ) のリストがあり、以下のように辞書 (x) に変換したいと考えています。次の「forループ」を使用して達成しています。

上記のロジックをdict内包表記またはその他のpythonicな方法で実装することは可能ですか?

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

python - Python -- for ループで辞書を変更する方法の違い

ループ中に辞書を変更すると実行時エラーが発生する可能性があることは認識していますが、それを行う適切な方法があることは知っており、どれが受け入れ可能でどれがそうでないかを理解できません。実行時エラーが発生する可能性があるため、それらをコンソールでテストしても役に立ちません。私はそれが正しいのか、それとも単に幸運なのかわかりません。

ステータスの辞書であるステータス属性があるとします。

これらは、実行中にさまざまな True または False に変化します。失敗を処理する関数があり、それらすべてを False に設定したいと考えています。エレガントな方法は何ですか?これまでのところ、これは機能していますが、ある時点で実行時エラーが発生するかどうかはわかりません。

それをしてもいいですか?ここでは、低レベルの機能についてはわかりません。私は .items() などでコピーを作成していません。辞書を上書きしていますが、最初に右側を処理する必要がありますが、これは理解であるため、self.status を上書きする前に最初に理解全体を完了するかどうかはわかりません。新しいdictを理解してから設定している間、一種のコピーをメモリに保存しますか、それとも反復ごとにdictを理解してアイテムを設定することをループしますか(問題が発生すると思います)?

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

python - 複数の入力セットを持つ内包表記

私はpythonを試していますが、私がやっていることのコンテキストでエラーメッセージを理解しようとして立ち往生しています。

私は理解をいじっていて、複数の入力セットを持つリスト/辞書の理解を作成するパターンを見つけようとしています(これが可能であると仮定します):

注:ここで入力セットという単語は、内包表記の入力領域を意味します。setbuilder 表記法では、Python がその内包表記 [LIST の X の Y] を導出した場所から、Y は出力関数、X は変数、LIST は入力セットです。

次の作業コードがあるとします。

それについて特別なことをしようとしているわけではありません。これは期待どおりに動作しないため、有用なコードではありません。ディクショナリ内のすべての要素の値は、ランダム ジェネレーターによって指定された要素だけではなく、1 になります。私の唯一の目的は、入力セットのタプルを使って作業を開始するための基礎を築くことです。

このオプションは私に与えます: TypeError: 'int' object is not iterable.

入力セットを交換して解凍すると、次のようになります。

しかし、このオプションは私に与えます:TypeError: can only concatenate list (not "int") to list

これらのエラーは、言語の文法が理解できないことをしようとしているために表示されているのでしょうか、それともコードを修正できる何かが欠けているのでしょうか?

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

python - Python - リストの 1 つを辞書名として使用して、複数のリストを複数の辞書に変換する

小さなpythonプロジェクトに取り組んでいて、困惑するところまで来ました。

私は上記のデータを持っており、ランナー名として名前が付けられたdictを使用して、各ランナーの辞書を作成したいと考えています。

したがって、結果は次のようになります。

必要に応じて、つまり元のリストの1つからの名前として、実際に辞書に名前を付ける方法について困惑しました。

非常に多くの投稿を読みましたが、この特定の質問に対する答えが見つかりません。

正しい方向へのすべての有益な指針を感謝して受け取りました。

どうもありがとう。