Python 辞書型

Python学習【365日チャレンジ!】22日目のマスターU(@Udemy11)です。

TimeCapsuleをIO-DATAのNAS(ネットワークアタッチトストレージ)に変更しましたが、調子が悪かったとはいえ、まだ使えるTimeCapsuleをどうしようか悩んでいます。

WiFiのネットワーク拡張に使ってもいいのですが、同じ時期に購入していたAirMacExtreamも少し前に旅立ってしまったので、故障するのも時間の問題だと思うんですよね。

まー、インテリアとして飾っておいてもいいんでが、データ消去の上、廃棄するのがベストなのかもしれません。

ということで、今日は新しい辞書型データを学習します。

記事の内容は、酒井潤さんの講座を参考にさせていただき、学習した内容を紹介しています。
Pythonをひととおり学習したい人にはピッタリの講座で、セールの際は、値段も専門書1冊の値段よりも安く受講できるので、超おすすめの講座です。

Python入門 酒井さんの講座

昨日の復習

昨日は、タプル型の使い方について学習しました。

3つの選択肢の中から2つを選ぶ場合のタプルの使い所でしたね。

>>> choose = ('A', 'B', 'C')
>>> ans = []
>>> choose
('A', 'B', 'C')
>>> ans.append('A')
>>> ans.append('C')
>>> ans
('A', 'C')

変数chooseをリスト型にしても同じように回答を得ることができますが、append()で値を代入する変数に間違ってchooseを選んでしまうと、選択肢が増えてしまうことになります。

最初の選択肢を変更してはいけない場合は、タプル型を使って変更できないようにしておけば、代入する変数を間違ったとしてもエラーが起こるので、コードの間違いに気づくことができます。

このように、一度定義してから変更することのない読み込み専用の変数を使う場合はタプル型を利用するのがいいということでした。

続いて、今日は辞書型のデータを学習します。

辞書型はbrasesの波括弧を使って、変数を定義

辞書型は、リスト型やタプル型と同じように、カッコでくくりますが、くくるカッコは【{}(波括弧)】となります。

bracesは、文字列のformat()を使った代入で出てきましたね。

>>> 'This is {} and {}'.format('A', 'B')
'This is A and B'

今回は、辞書型として定義するためのbracesとなります。

dic = {'A': 10, 'B': 20}
print(dic)
print(type(dic))
print(dic['A'])

出力結果

{'A': 10, 'B': 20}
<class 'dict'>
10

はじめて見ると、よくわからない形で表示されていますが、Aと10などの対になった値が一つのindexとして格納されています。タイプはもちろん辞書型(dict)になっています。
辞書型の中にAで定義された値も抽出することが可能です。

辞書型の値の追加

辞書型に値を追加するには、bracketsの角括弧を使って追加することができます。

dic = {'x':10, 'y':20}
dic['z'] = 30
print(dic)

出力結果

{'A': 10, 'B': 20, 'z': 30}

後ろにzと30の対が追加されています。

辞書型の生成方法

辞書型データの生成は、bracketsで囲んで2つの対になる値を指定しましたが、次のような書き方でも辞書型データを定義することが可能です。

d = dict(x=10, y=20)
print(d)
print(type(d))
 
e = dict(['a', 10], ['b', 20])
print(e)
print(type(e))

出力結果

{'x': 10, 'y': 20}
<class 'dict'>
{'x': 10, 'y': 20}
<class 'dict'>

1つ目も2つ目もdictオブジェクトを利用して、辞書型を定義しています。
2つ目は、リストの中にタプルを入れることで、タプルが対になって辞書型に定義づけられるようです。

講座の中でも、こんな使いたかはあまりしないといっていたので、このような使い方があるという程度で、忘れてしまっても問題ないのかなと感じました。

辞書型はちょっと難しそう

リスト型、タプル型とやってきて、なんとなく変数がわかるようになってきましたが、これまではindexの中に一つの値だけしか入っていませんでした。

辞書型になると、2つの値が対になって入っているので、ちょっと難しくなりました。

どのような使いみちがあるのか今の時点ではよくわかりませんが、リストのネストのようなパターンなども

これができる、あれはできない

と試しながら、理解していこうと思います。

それでは今日はこのへんで、Good Python!