問題タブ [hash-of-hashes]
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.
ruby - Rubyのハッシュイディオムのハッシュ?
Rubyでハッシュのハッシュを作成すると、便利な2次元(またはそれ以上)のルックアップが可能になります。ただし、挿入するときは、最初のインデックスがハッシュにすでに存在するかどうかを常に確認する必要があります。例えば:
新しいハッシュが自動的に作成される場合は、次のことを行うことをお勧めします。
同様に、最初のインデックスがまだ存在しない値を検索する場合は、「[]」エラーの未定義のメソッドを受け取るよりも、nilが返される方が望ましいでしょう。
この動作をするHashラッパークラスを作成することもできますが、このタスクを実行するための既存のRubyイディオムはありますか?
ruby - 別のハッシュの一般的な方法でハッシュを保存していますか?
いくつかのハッシュ オブジェクトをコレクションに保存したいと思います (Java の世界では、それをリストと考えてください)。Ruby に同様のデータ構造があるかどうかをオンラインで検索しましたが、何も見つかりませんでした。今のところ、 hasha[]
を hashに保存しようとしb[]
ていますが、 hash からデータを取得しようとして問題が発生していますb[]
。
Ruby に組み込みのコレクション データ構造はありますか? そうでない場合、ハッシュを別のハッシュの一般的な方法で保存していますか?
perl - Perlでハッシュのハッシュを作成するにはどうすればよいですか?
私はPerlを初めて使用します。次のようなPerlのデータ構造を定義する必要があります。
どうすればこれを達成できますか?
ruby - キー名によるルビーの多次元ハッシュから特定の値を抽出する
多次元ハッシュがあり、サブハッシュの1つに、キーで取得する必要のあるkey=>valueのペアがあるとします。どうすればいいですか?
ハッシュの例:
キーは常に:kであり、「針」を取得する必要があります
ruby 1.8にはハッシュの「フラット化」機能がないことに気づきましたが、それがあれば、私はただやるだけだと思います
そのために再帰関数を書く必要があると思いますか?
ありがとう
ruby - 提供された引数からRubyでハッシュを再帰的に定義するにはどうすればよいですか?
このコードスニペットは@options
ハッシュを設定します。values
は、Array
0個以上の異種アイテムを含むものです。populate
エントリである引数を使用して呼び出す場合Hash
は、各エントリに指定した値を使用してデフォルト値を想定します。
私がやりたいのは、再帰的に移入するpopulate
ように変更することです。特別な場合があります。キーに入力しようとしている値が、(1)シンボルまたは(2)キーがシンボル(または2つの組み合わせ)であるハッシュのみで構成される配列である場合、それらは次のように扱われる必要があります。そのキーに関連付けられた値ではなくサブキー、および元の引数の評価に使用されたのと同じロジックを再帰的に再適用する必要があります。@options
populate
それを言葉にするのは少し難しかったので、私はいくつかのテストケースを書きました。いくつかのテストケースと@options
その後の期待値は次のとおりです。
populate
ある種の再帰バージョンに対応するために署名を変更する必要がある場合は、許容されます。理論的に発生する可能性のあるネストの量に制限はありません。
私がこれをどのようにやってのけることができるかについて何か考えはありますか?
ruby - ネストされたハッシュが定義されていますか?()
が定義されているかどうかを判断する最も簡潔な方法は何ですか?それは、またはnil@hash[:key1][:key2]
の場合にエラーをスローしませんか?@hash
@hash[:key1]
defined?(@hash[:key1][:key2])
存在する場合はTrueを返します(定義され@hash[:key1]
ているかどうかは判別しません):key2
perl - Perlハッシュの理解に役立ちます
ここでPerlの初心者...私はいくつかのHASHコードでこの動作するperlスクリプトを手伝ってくれました、そして私はそのコードを理解するのに助けが必要です、そしてそれがHASHESの使用をより簡単にまたは視覚的に理解する方法で書かれることができれば??
要約すると、スクリプトは日付でフィルタリングする正規表現を実行し、残りの正規表現はその日付に関連するデータをプルします。
私が理解しようとしているのは、次の行です。
そして再びカップルラインダウン:
これはハッシュ参照の例ですか?ハッシュのハッシュ?
{$set}の使用と混同していると思います:-(
regex - ハッシュキーを必要な形式に印刷するのに役立ちます
可能であれば、ハッシュ/ハッシュ参照からSTDOUTにデータを印刷するか、特定の順序でデータをファイルに出力するのに助けが必要です。
私は次のようなハッシュ参照を使用するperlルーチンを持っています:
ダンパーを使用した出力:
私が見たいとフォーマットされた出力:
追加されたばかり(2010年8月7日):私が使用している生のログファイルのサンプル:(ソースログのより良い表現を提供するために最近追加されました)
perl - perl - レコードのハッシュとダンプを支援する
名前付きセットの最後のレコード セットのみを保持する perl スクリプトがあり、複数のレコード セットがあります。したがって、ハッシュにデータを上書きし、最後のセットを保持するだけです。すべての記録を印刷するのに助けが必要です。ありがとう!
これが私のスクリプトのコピーです:
ダンプすると、次のようになります。
ruby - h [1] [1] + = 1のように、存在しないキーにアクセスする場合のマルチレベルハッシュのデフォルトパラメータ
-esHash
を作成しようとしています。Hash
第2レベルのハッシュの値は、デフォルトで0の整数です。私がやろうとしているのは、ハッシュの空のハッシュから始めて、キーが存在しない場合に値を追加するときに、それらのキーを追加する必要があります。デフォルト値で。
単純なHash
整数でこれを試してみると、正常に機能します。
h
現在、1つのキーと1の値があります。完璧です。
しかし、私のハッシュの値がハッシュである場合、それは機能していないようです:
何か間違ったことをしているのですか、それともハッシュのデフォルト値をに設定できませんHash.new(0)
か?
編集:
以下の回答に基づいて、私は自分が間違っていることを理解することができました。実際、私は自分の考えがどこに間違っているのかを理解することができました。簡単に言うと、呼び出すコードのブロックを指定しない限り、呼び出しをh[1][1]
ネストしません。式の値は期待どおりですが、最も内側のハッシュのみが正しく初期化されていました。Hash.new
Hash.new
h[1][1] += 1
1
上記の例では2次元ハッシュを使用していますが、実際の問題では3次元ハッシュを使用しているため、これを投稿します。
syms[level][exchange][symbol] = count
この解決策は、この問題を抱えている他の人に役立つ可能性があるため、これを私が望むように機能させるコードを次に示します。