問題タブ [dictionary]

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

delphi - Delphiの辞書(Pythonから)コンポーネント?

Pythonの辞書のようなDelphi用の同様のコンポーネントはありますか?

現在、TStringListを使用して文字列とオブジェクトのペアをマップしていますが、より一般的なアプローチと、おそらくより強力な方法が必要です(TStringListは、並べ替え時にバイナリ検索を実行します)。

D2009以前のソリューションも歓迎します。

0 投票する
9 に答える
64562 参照

python - Djangoで特定の権限グループを持つすべてのユーザーのリストを取得する方法

特定の権限グループを持つすべてのDjango認証ユーザーのリストを取得したいのですが、次のようになります。

これを行う方法がわかりません。権限グループはユーザーモデルにどのように保存されますか?

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

c# - ディクショナリ値のベスト プラクティスの取得

私は最近気づいたDictionary.TryGetValue(TKey key, out TValue value)ので、ディクショナリから値を取得するためのより良いアプローチはどれかについて興味がありました。

私は伝統的に行ってきました:

そこにある必要があることを私が知らない限り。

するだけの方が良いですか:

どちらがより良い習慣ですか?一方は他方より速いですか?Try バージョンは、内部で try/catch を「飲み込み」、それをロジックとして使用するため、遅くなると思いますか?

0 投票する
6 に答える
8696 参照

c# - C#辞書メモリ管理

私には、Dictionary<string,int>1,000万以上の一意のキーが含まれる可能性があるがあります。辞書の機能を維持しながら、これに必要なメモリの量を削減しようとしています。

代わりに、文字列のハッシュを長く保存することを考えていました。これにより、アプリのメモリ使用量が許容可能な量(〜1.5ギガから〜.5ギガ)に減少しますが、私の方法についてはあまり気分が良くありません。これ。

基本的に、これはSHA1ハッシュの終わりを切り取り、その最初のチャンクをlongに入れ、それをキーとして使用します。これは機能しますが、少なくとも私がテストしているデータについては、キーの衝突の可能性が高くなるため、これが非常に信頼できるソリューションであるとは思えません。

辞書のメモリフットプリントを削減する他の方法はありますか、それとも上記の方法は私が思っているほどひどいものではありませんか?

[編集]明確にするために、文字列を使用して辞書に含まれる値を検索する機能を維持する必要があります。実際の文字列を辞書に保存すると、多くのメモリが必要になります。代わりに私がしたいのはDictionary<long,int>、longが文字列のハッシュ関数の結果であるaを使用することです。

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

c# - C#: Dictionary の [string] インデクサーは何を返しますか?

キーがディクショナリに存在しない場合、[string]インデクサーは何を返しますか? Dictionary私は C# が初めてで、Javadocs ほど優れたリファレンスを見つけることができないようです。

または例外が発生しますnullか?

0 投票する
6 に答える
2695 参照

c# - Dictionary が Hashtable のように存在しないキーにアクセスしないのはなぜですか?

を使用している場合Hashtable、次のようなコードを記述できます。

keyに表示されているかどうかに関係なく機能しますHashtable

私はそれを行うことはできませんDictionary<TKey. TValue>。キーがディクショナリに存在しない場合は、KeyNotFoundException. したがって、次のようなコードを書く必要があります。

これはなぜだろうと思います。 Dictionary<TKey, TValue>は単なるラッパーHashtableです。なぜこの制限が追加されたのですか?

編集:

PopCatalin の回答 (以下を参照) の別の観点から、辞書の値が値型の場合、上記のコードは機能しません。を使用している場合Dictionary<int, int>、使用したいコードは次のようになります。

dict[key]null許容型または参照型ではないため、コンパイルされません。

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

cocoa-touch - キーと値のペアを iPhone の UIView にアタッチするにはどうすればよいですか?

iPhone の開発を始めたとき、UIView にキーと値のペアをアタッチできることをどこかで読みました。不必要なサブクラス化を防ぐために、すべての UIView を辞書として使用して、それらに添付したいデータを保存できることを理解しました。ただし、参照を見つけるためにあらゆる場所を検索し、自分で動作を実装しようとしましたが無駄でした。

私は次のようなことを試しました:

しかし、これはうまくいかないようです。上記のコードが行うことは、値 @"hello" をプロパティ @"world" に割り当てようとしていると思いますが、これは私が望んでいるものではありません。

私が達成しようとしていることは可能ですか?

ここで何か助けていただければ幸いです。

ありがとう!

ニック。

0 投票する
9 に答える
3390 参照

algorithm - 単語リストをエンコードするための圧縮アルゴリズム

単語のリストを効果的にスペルチェック辞書になるものにエンコードするためのアルゴリズムおよび/またはデータ構造への特定の提案または参照を探しています。このスキームの目的は、生の単語リストをエンコードされた形式に非常に高い圧縮率で変換することです。エンコードされた辞書に関する唯一の出力要件は、提案されたターゲット単語が元の単語リストに対して存在するかどうかを比較的効率的な方法でテストできることです。たとえば、アプリケーションで 100,000 語の辞書に対して 10,000 語をチェックする場合があります。そうではないエンコードされた辞書形式を元の単語リスト形式に [簡単に] 変換できるようにするための要件 - 結果の辞書に対してテストされる各単語に必要なのは、バイナリの yes/no の結果だけです。

圧縮率を向上させるためのエンコード方式は、単数形と複数形、所有格、短縮形など、特定の言語の既知の構造を利用すると想定しています。主に英語の単語をエンコードすることに特に関心がありますが、明確にするために、スキームはすべてのASCIIテキスト「単語」をエンコードできなければなりません。

私が念頭に置いている特定のアプリケーションは、不揮発性ストレージ スペースが貴重であり、辞書がランダムにアクセス可能な読み取り専用メモリ領域である組み込みデバイス向けであると想定できます。

編集:辞書の要件を要約するには:

  • 偽陽性ゼロ
  • 偽陰性ゼロ
  • 非常に高い圧縮率
  • 減圧不要
0 投票する
2 に答える
7377 参照

c# - 一般的な辞書をロックできますか?

それとも、常に他のロック オブジェクトを作成する必要がありますか?