プログラミング勉強中!!

TECH::EXPERT 40期 受講生の筆者がその日学んだことをアウトプットしていくブログです。学習量によっては全て書ききれないこともあります。お気付きのことありましたバシバシコメントください!!3月中旬よりWEBエンジニアとして働くことになりました。日々の業務などについても発信させていただきたいと思います!!よろしくお願いいたします!!

Python3 辞書 とは

はい、こんにちは。

最近はPythonにどハマり中です。

なぜか? コードが美しい・・・ただただ美しい・・・

それだけです。

ということで辞書のアウトプットをしていきます。

辞書とは?

Rubyでいうハッシュのようなものです。{}内に要素を格納していくのですが、それには特徴があります。

辞書の構造

list = {"キー":"値", "キー":"値"} と、キーと値を一緒に格納していきます。 dict = {"値を取得するためのキー":"キーに対応する値(valueともいう)"}

 例

monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}

こんな形で辞書に格納し、取り出すときは下記のようになる。

monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}

print(monster) #辞書を全て取得

キーを用いて取得したいときは下記のようになる。

monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}
print(monster["弱い"]) #キーを用いての取得

=> 'スライム'

このように、呼び出すときに文字列が使えるのも特徴の一つである。

また、登録、更新、削除も簡単にできる。

登録、更新、削除

#登録
monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}
print(monster) #全ての辞書を取得。
print(len(monster)) #辞書の個数を取得
#len()で辞書内は3この要素が入っていると判明。

#登録 = 新しく要素を追加する。

monster["真のボス"(これがキー)] = "真の魔王"(これがvalue。値ともいう。)

print(len(monster)) #辞書の個数を確認
=> 4とあれば正しく登録できている。
#更新(変更)
monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}
print(monster)

monster["弱い"]="プリン"

print(monster["弱い"])

=> "プリン" #辞書内のキーと一致している値を更新した。
#削除
monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}
print(monster) #辞書を取得
print(len(monster) #辞書の個数を確認

del monster["弱い"] #削除。[キー]で指定する

print(monster) #削除後の辞書を取得
print(len(monster) #削除後の辞書の個数を取得

ループ処理と辞書

前回ループ処理をアウトプットしましたが、ループ処理に辞書を使ってみる。

monster = {"弱い":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}

for i in monster: #monsterという変数のキーを[i]で指定。
    print(monster[i]+"があらわれた!") #monsterの中の[キー]を持っているもの全て取得   
=> スライムがあらわれた!
ドラゴンがあらわれた!
魔王があらわれた!

上記は値の取得のみだが、キーと値を取得する方法もある。

monsters = {"ザコ":"スライム", "中ボス":"ドラゴン", "ラスボス":"魔王"}

for (i, monster) in  monsters.items(): #引数として(i, monster)を与えた。monstersという辞書のキーと値に相当する。
    print(str(i)+"の"+str(monster)+"あらわれた!")

#キーを(i)で取得し、値を(monster)で取得している。

# 実行結果

=>
ザコのスライムあらわれた!
中ボスのドラゴンあらわれた!
ラスボスの魔王あらわれた!

となる。

RPGゲームに似た出力を作るのは楽しい限りである。