No.4ベストアンサー
- 回答日時:
何が言いたいのかがよくわかりませんが
こういうことかなぁ、と疑似言語っぽく書いてみました。
# キーのリスト
keys = hash.GetKeys()
# 値のリスト
values = hash.GetValues()
# 位置が対応関係に「ある」
全てのiについて
hash[keys[i]] == values[i]
が保証されている
# 位置が対応関係に「ない」
ある iについて
hash[keys[i]] == values[i]
とは限らない
こういうことですか?
それでしたら
(1) そのような実装になっているものに心当りはない。が無いとは言い切れない。
(2) 位置の対応が必須なら、私なら他の確実な手段を使う。
・keysを hash.GetKeys() で受けとったら、valuesはhashと keysを使って同じ順番になるように作る。
・「キーと値のセット」のリストがあれば使う。
keyValues = hash.GetKeyValuePairs()
No.9
- 回答日時:
>貴方の考えではどうやってキーや値のリストを返せるのですか?
>それと、「〇〇そうとか〇〇と思う」じゃなくて
>事実を教えて欲しいのですが。
うわ、突っかかってきた。それはアルゴリズムの本で勉強したら?
そもそもハッシュというのは検索のためのデータ構造とアルゴリズムで
キーや値の一覧を返すというのは埒外。どう実装しようが「自由」なんですよ。
そこを理解できていないようではどうしようもない。
今でこそハッシュが言語のライブラリに含まれているのは普通だけど
昔は自分で実装するのが普通だったんで、私もいろいろな言語で
いろいろなハッシュの実装をたくさん書きました。
その経験から述べているだけなんだけど・・・
自分の拙い主張以外に聞く耳持たないというならしかたないですね。
突っかかってきたってどういうことですか??
質問として普通のことを言ってるだけだと思いますけど。
実装方法も知らないのになんで回答するのか意味がわからないし、突っかかってきてるのは君の方ですよ。
あなたの考えでどうやってキーや値のリストを返すのかを質問してるのに、アルゴリズムの本で勉強??
意味がわかりません。勉強した方がいいのは貴方ですよ。
ハッシュは検索のためのアルゴリズムですよ??
それをわかってないのはあなたでしょw
キーや値のリストを返すために、わざわざ「検索」なんてしないでしょ。
なのにあなたはするかのような書き方をしてる。
その経験から述べてる??
じゃあ質問に答えてくださいw
あなたの考えでどうやってキーや値のリストを返すんですか?w
私が一体何を主張したんでしょうか?
これだけの長文と3回の返信をしていて一切質問に答えられてないですよ。
自分の発言を客観的にみる能力つけてくださいw
アルゴリズムの基本どころかまともな脳みそも持ってなさそうでこっちが恥ずかしいw
No.7
- 回答日時:
>あるとしたらどのような事情からそうなっているのか
オープンハッシュだと値の一覧はハッシュ値順とか実装が軽そう。
一方、キーの一覧は登録順の人気が高いと思います。
pythonのdictのkeys()、values()のイテレート順も、同じ並び順になるっぽいけど、ドキュメントには何も書いて無いですね。
同じと仮定するのは危険だと思います。
どういうことですか?回答ありがとうございます。
貴方の考えではどうやってキーや値のリストを返せるのですか?
それと、「〇〇そうとか〇〇と思う」じゃなくて事実を教えて欲しいのですが。
No.6
- 回答日時:
んん〜、#4氏の言ってるような事なのかなぁ。
そもそもやっぱ「キーのリストと値のリストを返すような実装」ってのがどういう意味なのか、って事なんだけど、#4氏の言ってるような事だとすれば、別にハッシュテーブル自体に「キーを全部返す」機能がある、とか「値を全部返す」機能がある、とか言うのって傍流でハッシュテーブルの機能の本懐じゃないよね。
#5氏が指摘してるのは多分そういう事だし。
C言語だっけ?得意なのは。
例えば・・・ええと、GLib使って#4氏が言ってるような事を試してみる、とだ。
GLib:
https://docs.gtk.org/glib/index.html
多分こういうコードになるだろう。
実装例:
https://www.ideone.com/GeJEUC
あんまC得意じゃないんだけど、多分こうなると思う。恐らく。うん。
注: /* WindowsでのMicrosoft処理系でもGLibは使える筈だ、って話は聞くけど詳細は知らん。
Linuxだと、例えばDebian系Ubuntu系列だと、gccとpkg-configを使って
gcc foo.c $(pkg-config --cflags --libs glib-2.0)
みたいにしてコンパイルする。 */
んで結果、
TRUE
TRUE
TRUE
TRUE
TRUE
みたいな出力になるのね。要はキーと値の「順序」は同じだ、と言う事。
まぁ、GLibみてぇなメジャーなライブラリがそうだったから、って言って他もそうしてるかは知らんけどね。
取り敢えずCで有名なGLibのハッシュテーブルだったらそうだったよ、って話。
っつーか、「違う」って実装なり言語なり知りたいな。どれをどのように想定してんだろ。
No.5
- 回答日時:
有り得るでしょう。
その方がハッシュの実装が楽ですから。そもそもハッシュがキーや値のリスト返却の機能を提供するとは限りませんし、提供しても並び順に関する規定はなく、並び順は任意で実装次第です。
No.3
- 回答日時:
> ハッシュテーブル(連想配列)が、キーのリストと値のリストを返すような実装
へぇ、そんなのあるの?
どの実装、っつーかどの言語だろう。
こういうカンジの想定?
(注: 利用するプログラミング言語はLisp系のRacket
https://racket-lang.org
とする)
実装例:
https://www.ideone.com/qSLwdV
もちろん、全然ハッシュテーブルって言う程豪華な実装でも何でもないんだけど、想定してる連想配列の挙動、ってこんなカンジかしらん?
> (define *data* '((key1 val1) (key2 val2) (key3 val3) (key4 val4) (key5 val5))) ;;; 連想配列を定義
> (psedo-hash-ref 'key2 *data*)
'(key2 key3 key4 key5)
'(val2 val3 val4 val5)
> (psedo-hash-ref 'key3 *data*)
'(key3 key4 key5)
'(val3 val4 val5)
>
キーのリストと値のリストを「多値として」返す、って言うとこういう挙動かしらん・・・・・・。
真っ向勝負として言うと、keyの位置とvalの位置の対応関係は保持してないと意味が無くなるんじゃないかな・・・・・・。
そもそもハッシュテーブルってキーと値のペアをどう格納すっか、ってのが発想の根幹だろうから、バラバラにする、とかあまり意味が無いように思うんだけど・・・・・・。
はて。
No.2
- 回答日時:
「これらの位置が対応関係にない」とはどういうことでしょうか? 具体例をお願いします.
そして, あなたは「対応関係にない」ことはありえない, と思っているんだよね? その根拠は?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- その他(プログラミング・Web制作) pythonの課題に関してです。 (1)x = 1,3,5,7 に対して 2x^2-3 (2) 12 2 2022/06/04 20:27
- Excel(エクセル) 別シートの表の値を参照したい 2 2022/03/30 15:11
- Excel(エクセル) Vlookup関数で#N/Aエラー表示について 3 2022/09/03 20:59
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- Excel(エクセル) Libreoffice calcで人名を取り消し線を入れたい。 2 2022/09/10 15:27
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
double型が正常に認識されていない恐れ
C言語・C++・C#
-
これなにがちがうんですか??
C言語・C++・C#
-
ものづくりに向いているプログラミング言語ってなんですか?家電にもプログラミングが使われてるとか
その他(プログラミング・Web制作)
-
-
4
WindowsのCapsLock(キャップスロック)って、何の意味があるんですか?
C言語・C++・C#
-
5
gccを行ってもexeファイルが生成されない
C言語・C++・C#
-
6
プログラムの素朴な質問です 分岐するコードを書く時に、 /** * 関数 */ sub(){ ...
その他(プログラミング・Web制作)
-
7
C言語の関数と配列に関する質問
C言語・C++・C#
-
8
あなたは、Excelはどうやって学びましたか?
C言語・C++・C#
-
9
Pythonって何を意識した言語なんですか?コマンドライン?
その他(プログラミング・Web制作)
-
10
Int('1234') で、strをかんたんに整数で扱えちゃうパイソンはどうなってるんですか?
C言語・C++・C#
-
11
そのまま使っただけなのに・・・python
その他(プログラミング・Web制作)
-
12
pythonの質問です。
C言語・C++・C#
-
13
pythonの条件分岐(if)
その他(プログラミング・Web制作)
-
14
LeetCodeていうの初めて、
C言語・C++・C#
-
15
家庭のパソコンで Python の 環境構築を行います。 windows 11 です 事情があって
その他(プログラミング・Web制作)
-
16
IT業界より楽に稼げる業界ってあるんですか?銀行とか?
その他(プログラミング・Web制作)
-
17
質問失礼します。 プログラム言語を一つも知らないのですが、C♯の勉強をしてみたいです。おすすめの教材
C言語・C++・C#
-
18
スカラーのベクトル微分
その他(プログラミング・Web制作)
-
19
Webプログラムってネイティブアプリプログラムに比べて遥かに簡単すぎる気がするのですが気の所為ですか
その他(プログラミング・Web制作)
-
20
C言語をコンパイルするとコンピュータ上でどう動くかというコードになるみたいな説明をよく聞くのですがこ
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VB.NETでコンボボックスの1行目...
-
値を返さないコード パス
-
マクロ 特定のセル値のみクリ...
-
変数名の取得
-
VBAのIF分で値を入れる場合
-
VB初心者。小数点以下の表示で...
-
マクロで奇数と偶数の値を2か所...
-
VBA(自然数)
-
C#の質問です
-
ポインタのプログラムについて
-
VBで電卓のメモリー機能はどの...
-
最大・最小を求めるプログラム
-
textboxとLabelを動的に変更する
-
C# get set
-
ハッシュテーブル(連想配列)が...
-
OpenCVにおいてのYCrCb値の求め方
-
Excel VBAのリストボックスの値...
-
Excel VBA 複数選択したリスト...
-
PL/SQLでのTO_DATEの時間取得に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
ハッシュテーブル(連想配列)が...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Powershellのparamについて
-
power BI クエリエディター 〇...
-
PysimpleGUIでデータベースを作る
-
DataTableに対するLINQについて
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
Excel VBA 複数選択したリスト...
-
ダブルクリックをした順番に数...
-
PL/SQLでのTO_DATEの時間取得に...
-
[VB.net] DataGridViewのコンボ...
-
マクロで奇数と偶数の値を2か所...
-
ASPの変数の値をJAVA Script内...
-
vb6のVSFlexGridで選択行、列の...
-
シーケンサで最小値を保持する
おすすめ情報
すみません。回答ありがとうございます。あるとしたらどのような事情からそうなっているのかを教えてくださいませんでしょうか?