辞書型(Dict)
Juliaの 辞書型(Dict)は、キーと値の組み合わせを保持するデータ構造です。キーは単一で重複なし(=ユニーク)、値はそのキーに対応するものです。辞書型は、高速な探索、追加、削除が可能です。例えば、次のような使い方ができます。
# Dict型の生成
mydict = Dict("key1" => "value1", "key2" => "value2")
# 値の取得
println(mydict["key1"]) # "value1"が表示される
# 値の追加
mydict["key3"] = "value3"
# 値の削除
delete!(mydict, "key1")
for文の利用
for文を使用して中身を反復処理することができます。次のように記述します。
# dictionaryの生成
mydict = Dict("key1" => "value1", "key2" => "value2")
# for文を使った反復処理
for (k, v) in mydict
println("$k : $v")
end
上記の例では、dictionary内のキーと値を順番に取り出して処理しています。また、反復処理の中では、キーと値はタプルの形で取り出されるので、括弧を使用して個別の変数に代入することもできます。
初期化
初期化するには、以下のようにします。
# 初期化宣言する
my_dict = Dict{Any, Any}() #Dict()でもAny,Anyになる
# データを追加する
my_dict["key1"] = "value1"
my_dict["key2"] = "value2"
上記の例では、Any 型をキーと値の両方に使用していますが、実際には、キーと値の型は異なる場合が多いでしょう。その場合は、dictionaryを宣言する際にキーと値の型を指定します。
# キーが文字列型、値が整数型のハッシュマップを宣言する
my_dict = Dict{String, Int}()
# ハッシュマップにデータを追加する
my_dict["key1"] = 1
my_dict["key2"] = 2
削除
辞書型 (Dict) を削除する方法はいくつかあります。例えば、以下のように delete!() 関数を使う方法があります。
# 辞書型を定義する
d = Dict("a" => 1, "b" => 2, "c" => 3)
# "a" キーに対応する要素を削除する
delete!(d, "a")
# 辞書型を表示する
println(d)
上記のコードを実行すると、次のように表示されます。
Dict("b"=>2,"c"=>3)
また、辞書型からすべての要素を削除するには、empty!関数を使うこともできます。
# 辞書型を定義する
d = Dict("a" => 1, "b" => 2, "c" => 3)
# 辞書型を空にする
empty!(d)
# 辞書型を表示する
println(d)
実行すると次のように表示されます。
#Dict{String, Int64}()
keyの存在確認
辞書型 (Dict) にキーが含まれているかどうかを確認するために、haskey() 関数を使います。この関数は、次のように使います。
d = Dict("a" => 1, "b" => 2, "c" => 3)
# 辞書型に "a" キーが含まれているかどうかを確認する
if haskey(d, "a")
println("d has the key 'a'.")
else
println("d does not have the key 'a'.")
end
上記のコードを実行すると、次のように表示されます。
d has the key 'a'.