問題タブ [python-collections]

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 に答える
917 参照

python - itertoolsダイスロール:ダブルスロールを2回

私はPythonライブラリを学ぼうとしてitertoolsいますが、サイコロを振るシミュレーションが良いテストになると思いました。ライブラリを使用して可能なすべてのロールを生成しproduct、その方法の数を数えるのは簡単です。collections私はモノポリーのようなゲームで発生する問題を解決しようとしています。ダブルスがロールされると、あなたは再びロールし、最終的な合計は2つのロールの合計になります。

以下は、問題を解決するための私の最初の試みです。2つのカウンター、1つはダブル用、もう1つはダブル以外用です。それらを組み合わせる良い方法があるのか​​、それとも2つのカウンターがそれを行う最良の方法であるのかはわかりません。

itertoolsとコレクションを使用して、doubleでサイコロを振る問題を(列挙によって)解決するための巧妙な方法を探しています。

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

python - collections.Mapping が他のマッピングまたは dict と等しいかどうかをテストします

から継承するカスタム マッピング クラスを作成しましたcollections.Mapping。インスタンスのデータが別のマッピング オブジェクトと等しいかどうかをテストする簡単な方法はありますdictか?

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

python - Python のコレクション モジュールの defaultdict は、setdefault を使用するよりも本当に高速ですか?

私は、他の Python プログラマーがコレクション モジュールの defaultdict を次のユース ケースで使用しているのを見てきました。

私は通常、代わりに setdefault を使用してこの問題に取り組みました。

実際、ドキュメントはdefaultdict を使用する方が速いと主張していますが、自分自身をテストすると、反対のことが真であることがわかりました。

テストの設定方法に何か問題がありますか?

参考までに、私は Python 2.7.3 [GCC 4.2.1 (Apple Inc. build 5666)] を使用しています。

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

python - collections.defaultdict はスレッドセーフですか?

私はPythonでスレッド化をまったく行ったことがなく、この質問を完全に見知らぬ人として尋ねました。

defaultdictスレッドセーフかどうか疑問に思っています。説明させてください:

私は持っている

これにより、デフォルトで欠落しているキーのリストが作成されます。複数のスレッドが同時にこれを開始したとしましょう:

最後に、私はで終わるはずです['value', 'value']。ただし、defaultdictがスレッドセーフでない場合、チェック後および の前 にスレッド 1がスレッド 2に譲ると、インターリーブが発生し、他のスレッドがリストを作成して追加する可能性があります。if 'key' in dictd['key'] = default_factory()d['key']'value'

その後、スレッド 1d['key'] = default_factory()が再び実行されると、既存のリストと値が破棄されてスレッド 1が続行され、最終的に['key'].

defaultdictの CPython ソース コードを調べました。ただし、ロックやミューテックスは見つかりませんでした。文書化されている限り、スレッドセーフではないと思います。

昨夜の IRC で、Python には GIL があり、概念的にはスレッドセーフであると述べた人もいました。Python ではスレッド化を行うべきではないと言う人もいます。私はかなり混乱しています。アイデア?

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

python - Counter.most_common が辞書を返すようにする

ドキュメントのサンプルを使用しました:

結果を次のようにするにはどうすればよいですか。

Counter().most_common()コードを保持したいとしますか?

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

python - OrderedDict がこの動作をする理由

Python 2.7では、OrderedDictでこの動作をしています

なんで?

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

python - バッグ型としてのPythonカウンター比較

Python で bag/multiset のようなデータ型が必要です。私はコレクションを理解しています。カウンターはこの目的でよく使用されます。しかし、比較演算子は機能していないようです:

これは私にはバグのようです。小なり演算子と大なり演算子がセットのようなサブセットとスーパーセットの比較を実行することを期待していました。しかし、その場合はbag1 > bag2false になります。なぜならbag2、extra が含まれているから'a'です。Counter オブジェクトにはサブセット/スーパーセット メソッドもないようです。だから私は2つの質問があります:

  1. Counter オブジェクトに使用される比較ロジックは何ですか?
  2. サブセット、スーパーセット、適切なサブセット、および適切なスーパーセットの Counter オブジェクトを比較するにはどうすればよいですか?
0 投票する
1 に答える
49 参照

javascript - django / python コレクションの問題

理解できないコードがいくつかあります。見れば見るほど迷う。

js 関数に渡される 2 つの日付値と言語コードがあります。次に、django 言語タグとやり取りして正しい値を割り当てる django コレクション (と思います!) があります。

これを正しく設定したと思っていましたが、コードが機能しておらず、どこが間違っているかを知るのに十分な経験がないため、その理由がわかりません。

(最後の行に示されているように)names.month を呼び出そうとするとエラーが発生するので、name_map コードまたは lc と LANGUAGE_CODES の変数の割り当てに誤りがあると思います。

渡される値は次のとおりです。

date1: 2000 年 10 月;

date2: 2004 年 12 月;

dynamic_language_code: de;

どんな提案も素晴らしいでしょう。