Julia早引きノート［15］辞書(dictionary)

###辞書(dictionary)(書き方例)

```ruby:note15
# 初期化
dic = Dict()

# キーと値のペアを登録
dic["name"] = "Donald"
dic["company"] = "ABCD Co.,LTD."

# キーで値を読み取り
dic["name"]

# キーの有無の確認
haskey(dic, "company")


◆初期化のパターン
　# 初期化(キー：文字列型、値：整数型)
　dic1 = Dict{String,Int}()

　# 初期化(キー：文字列型、値：Any型)
　dic2 = Dict{String,Any}()

　# 初期化(キー：Any型、値：Any型)
　dic3 = Dict()


◆Dictの宣言とともに要素を定義
　data = Dict(
　    "name" => "Michel",
　    ...
　)


◆その他の関数
　# 空かどうかの判定
　isempty(dic)
　# 要素数取得
　length(dic)
　# 空にする
　empty!(dic)

```

##解説
・キーと値をペアとし、そのペアを格納するコレクションです。値を取り出すにはキーを指定します。
・一つの辞書内でキーの重複は認められません。
・辞書の型はDict{K,V}型です。
・辞書を使用する際は初期化を行います。初期化は例えば以下のように行うことができます。


|初期化|初期化の内容|
|:-----|:---------------------------|
|Dict{String,Int}()|キーを文字列型、値を整数型にして初期化します。|
|Dict{String,String}()|キー、値とも文字列型で初期化します。|
|Dict{String,Any}()|キーを文字列、値をAny型で初期化します。|
|Dict()|Dict{Any, Any}で初期化することと同じです。キー、値ともAny型です。|

・辞書内にキーが存在するかどうかを確認する場合は、**haskey()**を使用します。
　存在する場合はtrue、しない場合はfalseを返します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/3f0ef970-66ca-666a-8a4c-7fdbccc42e79.png)
・初期化と同時に要素を定義することもできます。

####◆初期化と同時に要素を定義する
Dict()の宣言とともに、以下のように要素を定義します。

```ruby:note15
data = Dict(
    "name" => "Michel",
    "age" => 10,
    "school" => "primary school",
    "favorite food" => ["cake", "tomato", "strawberry"]
)
```

実行例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/7afd5cd9-8c95-e906-884e-4d8caaa02336.png)


####◆その他の関数
<dl>
  <dt>isempty()</dt>
  <dd>空かどうかを判定します。true/falseを返します。</dd>
  <dt>length()</dt>
  <dd>要素数を取得します。</dd>
  <dt>empty!()</dt>
  <dd>要素を削除し、空にします。</dd>
</dl>



##もくじ
[Julia早引きノート［01］変数・定数の使い方](https://qiita.com/ttabata/items/a1ada2c0cba03672e105)
[Julia早引きノート［02］算術式、演算子](https://qiita.com/ttabata/items/90900d0914fa317f652d)
[Julia早引きノート［03］複素数]
(https://qiita.com/ttabata/items/225c77a4d71fafc3e482)
[Julia早引きノート［04］正規表現](https://qiita.com/ttabata/items/8b6e4a2b7c2ca299de03)
....
<details><summary>もくじを開く</summary><div>
[Julia早引きノート［05］if文]
(https://qiita.com/ttabata/items/4f0bcff1e32f60402dfb)
[Julia早引きノート［06］ループ処理]
(https://qiita.com/ttabata/items/2a53825101b0b75fb589)
[Julia早引きノート［07］try, catch, finally]
(https://qiita.com/ttabata/items/1d6fe990526c99b65b5f)
[Julia早引きノート［08］変数の型(Int, Float, Bool, Char, String)]
(https://qiita.com/ttabata/items/2b84a826e39bfe432b62)
[Julia早引きノート［09］関数 (1)基本編]
(https://qiita.com/ttabata/items/d9b4f2728ec0dbcc6394)
[Julia早引きノート［10］関数 (2)応用編]
(https://qiita.com/ttabata/items/462e216c43d519f1969d)
[Julia早引きノート［11］Nothing型]
(https://qiita.com/ttabata/items/0e5a6b21968d8752cf0b)
[Julia早引きノート［12］複合型(Composite Type)型]
(https://qiita.com/ttabata/items/27469216a3c33101c825)
[Julia早引きノート［13］タプル]
(https://qiita.com/ttabata/items/ebe35dbfec4efbc1c29a)
[Julia早引きノート［14］リスト(Array型一次元配列)]
(https://qiita.com/ttabata/items/7528863ccbb282e8260d)
[Julia早引きノート［15］辞書(dictionary)]
(https://qiita.com/ttabata/items/77a4f1d02b51d067bfb7)
[Julia早引きノート［16］集合]
(https://qiita.com/ttabata/items/ca8137922a785122037e)
[Julia早引きノート［17］多次元配列 (1)初期化]
(https://qiita.com/ttabata/items/01fecbd14363460a27a6)
[Julia早引きノート［18］多次元配列 (2)様々な演算や関数]
(https://qiita.com/ttabata/items/f35896a5fa005fba7fbc)
[Julia早引きノート［19］多次元配列 (3)サブ配列]
(https://qiita.com/ttabata/items/045c00406fe45270b42e)
[Julia早引きノート［20］ファイル入出力]
(https://qiita.com/ttabata/items/5a99c3998060d161ace8)
[Julia早引きノート［21］JSON、XMLファイルの入出力]
(https://qiita.com/ttabata/items/65ebec11830271f9be71)
[Julia早引きノート［22］Python関数やPythonモジュールの呼び出し]
(https://qiita.com/ttabata/items/3afc8cef40d1e98a7b17)
[Julia早引きノート［23］JuliaでのMatplotlibによるグラフ描画]
(https://qiita.com/ttabata/items/96a0e172addfac690cca)
[Julia早引きノート［24］CSVFiles(DataFrameとの連携)]
(https://qiita.com/ttabata/items/51446731a703b5aca524)
[Julia早引きノート［25］線形代数演算(ベクトル・行列計算)]
(https://qiita.com/ttabata/items/5abe14d5c510e8ca0f54)
(※引き続きコンテンツを増やしていきます)
</div></details>


##関連情報

:paperclip: Julia - 公式ページ
https://julialang.org/

:paperclip: Julia - 日本語公式ドキュメント
https://julia-doc-ja.readthedocs.io/ja/latest/index.html

:paperclip: 初めてのJuliaとインストール (Windows & Linux)
https://qiita.com/ttlabo/items/b05bb43d06239f968035

:paperclip: Julia - Mathematics
https://docs.julialang.org/en/v1/base/math/


##ご意見など

ご意見、間違い訂正などございましたらお寄せ下さい。