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

python - Python 2.6 の集合内包表記

私は 2.6 の集合理解を試みていましたが、次の 2 つの方法に出くわしました。最初の方法は2番目の方法よりも速いと思いましたが、timeitそうでなければ提案されました。2 番目のメソッドは追加のリストのインスタンス化とそれに続くセットのインスタンス化を行っているにもかかわらず、なぜ 2 番目のメソッドの方が高速なのですか?

方法 1:

方法 2:

どこでpwnodes = [('e1', dict(pm=1, wired=1)), ('e2', dict(pm=1, wired=1))]

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

python - for ループの動作を理解するのに助けが必要

Python 2.7 のセットに関するチュートリアルに取り組んでいますが、理解できないループを使用する動作に遭遇forしました。出力の違いの理由を突き止めようとしています。

この演習の目的は、for ループを使用して、凍結されたセットの都市のペアで構成されるキーを含む辞書から、セットの都市を生成することです。

データは次の辞書から取得されます。

チェックとして目的のセットを作成するテスト リストもあります。

コードが次の形式で記述されている場合、ループは意図した結果を生成します。

出力:

ただし、次のいずれかで理解しようとすると、別の結果が得られます。

また

両方の出力:

最初の例の for ループが意図したとおりにペアをアンパックして、各都市の 1 つのインスタンスを含むセットを生成する理由がわかりませんが、内包としてループを記述しようとすると、ペアが引き出され、frozenset([city1, city2])代わりにセットに配置されます。 .

pair最初のインスタンスで都市の文字列を与えるのに、2番目のインスタンスでfrozensetを渡す理由がわかりません。

誰かが異なる動作を説明できますか?

注: Holtdonkopotamusによって説明されているように、これが異なる動作をする理由の問題は、内包表記を使用すると、cities変数への単一の割り当てを行う前に辞書全体が完全に評価されたため、標準forループが展開されたときに一連の凍結セットが作成されたためです。ペアを一度に 1 つずつ個別に評価しcities、ループの各パスで一度に 1 つずつ割り当てfor、union 関数が渡されたペアの各インスタンスを評価できるようにします。

彼らはさらに、 - 演算子を使用すると、*内包表記で辞書がアンパックされ、目的の動作が生成されると説明しました。

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

python - リスト/セット内包表記を単に「for」ループとして使用しますか?

Python で一連の NUM_RECORDS タプルを作成しています。これは私のコードです。

別の方法は、このように問題をコーディングすることです。

2 つのコード スニペットの時間を計測したところ、20000 レコードの速度とほぼ同じでした。スタイル的には、コードの最初のバージョンを好みます。

コードの最初のバージョンは集合内包表記の正しい使用法ですか? それとも、常に2番目の方法に固執する必要がありますか?

編集:提案されたようにフォーマットを改善しました。ほとんどの場合、IDE からコピーして貼り付けただけです。ごめんなさい、みんな。

0 投票する
0 に答える
28 参照

python - 理解の困難 集合内包表記

{} の先頭が C である理由がよくわかりません。これは包括的なセットの単なる構文ですか?

x= {c for c in "I've got much of nothing"} print(sorted(x))

[' ', "'", I, 'e', 'f', 'g', 'h', 'i', 'l', 'n', 'o', 'p', ' t,''v', 'y'] for ループの前に ac が必要な理由を誰か説明できますか?

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

python-3.x - Python 3 のすべての種類の内包表記を列挙してください

これまでに知ったのは、

  • リスト
  • 設定
  • 辞書
  • 発生器

理解。「理解」できる他のイテラブルはありますか? 私は主に Python 3 に興味があります。