前回は、辞書の要素参照を解説しました。
今回は、色々な方法で辞書を作る!ということで、以下に分けて解説します!
辞書の更新(上書き)
テスト用のデータを用意します。ご存知ビッグ3の名前と出身地の辞書です。
まずはこの中から、たけしさんの要素を参照してみましょう。
big3 = {'たけし': '東京', 'さんま': '和歌山', 'タモリ': '福岡'}
big3['たけし']
▼実行結果
'東京'
たけしさんは東京と出ましたね。では、この出身地を東京から足立区に変えてみましょう!
変えるにはキーに値を代入するだけでいけます。
big3['たけし'] = '足立区'
big3['たけし']
▼実行結果
'足立区'
はい!とても簡単でしたね。
dict関数による辞書作成
これまでは辞書を作るとき、波括弧で括って云々というやり方をしました。しかし、dict関数という組み込み関数で作ることもできます。
dict()の形式になっていて、カッコの中にキーワード引数を指定してあげれば作れます。
big3 = dict(たけし='東京', さんま='和歌山', タモリ='福岡')
big3
▼実行結果
{'たけし': '東京', 'さんま': '和歌山', 'タモリ': '福岡'}
ご覧のように無事、辞書ができました。
しかし!ここで注意点があります。気づいた御方はいるでしょうか?
三人の名前に引用符がついていませんよね。
dict()にキーワード引数を突っ込むときは、たとえ文字列であっても引用符はつけないようにしてください。
zip関数による辞書作成
はい!また関数がでてきました。zip関数という組み込み関数でも辞書が作れるんですね。
と言ってもzip関数単体ではできません。合わせ技を使うんです。
先にソースだけ示してから詳しく説明しましょう!
key = ['たけし', 'さんま', 'タモリ'] # キーのリスト作成
val = ['東京', '和歌山', '福岡'] # 値のリスト作成
big3 = dict(zip(key, val)) # zipで合体させたものを、辞書化する
big3
▼実行結果
{'たけし': '東京', 'さんま': '和歌山', 'タモリ': '福岡'}
そもそもzip関数は何?という話ですが、zip関数は複数のイテラブルをまとめる関数です。
イテラブルとはfor文で繰り返し可能なオブジェクトのことです。リストやタプルなんかが該当します。そして、このイテラブルをまとめたオブジェクトをイテレータと呼びます。
- イテラブル
繰り返し可能なオブジェクト - イテレータ
イテラブルをまとめたオブジェクト
zip関数はzip()の形式になっていて、カッコの中に複数のイテラブルを突っ込むます。
突っ込んだ後、さきほど解説したdict関数でイテレータオブジェクトを辞書化すれば良いということになります。
キーのリスト | 値のリスト | 合体した後、辞書化 |
---|---|---|
[‘たけし’, ‘さんま’, ‘タモリ’] | [‘東京’, ‘和歌山’, ‘福岡’] | {‘たけし’: ‘東京’, ‘さんま’: ‘和歌山’, ‘タモリ’: ‘福岡’} |
とても便利な関数で、表形式のデータが大量にあるときは重宝しますよ!
後半は辞書というより、別の解説が濃くなりましたが、よく耳にはするが意外に理解していない用語なんかもあるのでは?と思い詳しく説明いたしました。
続く…
コメント