Pythonのコンテナで有名な辞書の使い方を解説していきます。リストやタプルと異なるところや、キー・バリューの意味、要素を追加・削除する方法などです。
辞書とは?
辞書の定義&書き方
- 辞書は波カッコ({})で書く
- 「(キー):(バリュー)」で書く
辞書とはキーとバリューのペアでデータを格納できる箱のことです。リストやタプルは一つずつのデータを格納していましたが、辞書は2個で1セットです。
1 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} |
リストやタプルはインデクスを指定して要素を取得しましたが、辞書はキーを指定してバリューを取り出します。
1 2 3 4 5 6 7 8 9 10 11 12 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo['name'] 'Tom' >>> jisyo['hight'] 180 >>> jisyo['weight'] 80 >>> jisyo['year'] Traceback (most recent call last): File "<pyshell#76>", line 1, in <module> jisyo['year'] KeyError: 'year' |
存在しないキーを指定すると「KeyError」になります。
性質
辞書はミュータブル・イテラブル・マッピングという性質があります。
- ミュータブル:変更可能
- リストもミュータブル
- タプルはイミュータブル(変更不可)
- イテラブル:反復可能
- for文でループできるもの
- リストもタプルもイテラブル
- マッピング:キーでバリューを呼び出せるもの
- リストやタプルはシーケンス
シーケンスとはリストやタプルのように整数のインデックスが要素に割り振られているものです。辞書はそうではなくキーとバリューのペアで格納されています。
つまり、辞書ではインデックスの役割をキーとして自由に設定できるということです。その性質をマッピングと言います。
辞書の順番
辞書には順番が関係ないことも大きなポイントです。以下のように要素の順番が異なってもキー・バリューのペアが等しければTrueになります。
1 2 3 4 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo2 = {'hight': 180, 'weight': 80, 'name': 'Tom'} >>> jisyo == jisyo2 True |
辞書に要素を追加する方法
辞書に要素を追加するときはキーとバリューを指定します。メソッドを使わなくてもいいのがラクですね。
もちろん、リストではないのでappendメソッドは使えません。
1 2 3 4 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo['year'] = 2002 #追加 >>> jisyo {'name': 'Tom', 'hight': 180, 'weight': 80, 'year': 2002} |
辞書のバリューを上書きする方法
すでに存在するバリューを上書きするときは、そのキーを指定して新しいバリューを書きます。下の例では「Tom」を「Bob」に上書きしています。
1 2 3 4 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80} >>> jisyo['name'] = 'Bob' #上書き >>> jisyo {'name': 'Bob', 'hight': 180, 'weight': 80} |
辞書の要素を削除する方法
要素を削除するときはキーを指定して「del」を使います。
1 2 3 4 |
>>> jisyo = {'name': 'Tom', 'hight': 180, 'weight': 80, 'year': 2002} >>> del jisyo['weight'] #削除 >>> jisyo {'name': 'Tom', 'hight': 180, 'year': 2002} |
まとめ
- 辞書はキー・バリューで格納される
- 要素の順番は関係ない
- ミュータブルでイテラブルなマッピング
- 追加するときはキーとバリューを指定
- 削除するときはキーを指定して「del」
- コンテナ4種類「リスト・タプル・辞書・セット」とは?
- リストとは?インデックス・要素数・結合する方法を解説
- リストに使えるメソッド11個「追加・削除・ソート」
- for文でリストのインデックスと要素を取り出す(enumerate)
- リストで内包表記する方法「for・if・lambdaの書き方」
- タプルとは?追加・削除・結合・リストに変換する方法
- リスト・タプルをスライスする方法とインデックスの覚え方
- 辞書とは?追加・削除・上書きする方法
- 辞書に使えるメソッド5個(keys・values・items・get・setdefault)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]