辞書
辞書について
今回は、辞書について書いていきます。
辞書は、個々の値に一意なキーを与えたリストだと考えることができます。
リストでは、オフセットを使って要素を操作しました。
一方、辞書では順序が管理されていないので、キーを用いて要素を操作します。
キーは文字列の場合が多いですが、イミュータブルなオブジェクトなら全てキーにすることができます。
辞書自体はミュータブルなので、リストと同様にキーや値を追加や削除、変更することができます。
辞書の作成
辞書は、{}またはdict()を使うことにより作成することができます。dict()関数を使うことにより、2要素のリストのリストやタプルのタプル、タプルのリストなどをdict型に変換できます。
また、2字の文字列のリストやタプルもdict型に変換できます。要素の数や文字列の長さが2でなければエラーになります。
>>> sample_dict1 = {'key': 'value'} >>> sample_dict1 {'key': 'value'} >>> sample_dict2 = {0: 'zero'} >>> sample_dict2 {0: 'zero'} >>> sample_dict3 = {} >>> sample_dict3 {} >>> sample_dict4 = {'zero': 0} >>> sample_dict4 {'zero': 0} >>> list = [['one', 1], ['two', 2], ['three', 3]] >>> dict(list) {'one': 1, 'two': 2, 'three': 3} >>> tuple = (('one', 1), ('two', 2), ('three', 3)) >>> dict(tuple) {'one': 1, 'two': 2, 'three': 3} >>> list2 = ['11', '22', '33'] >>> dict(list2) {'1': '1', '2': '2', '3': '3'} >>> list3 = ['111', '222', '333'] >>> dict(list3) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: dictionary update sequence element #0 has length 3; 2 is required
要素の追加と変更
要素を追加・変更する方法は簡単です。
- dict['key'] = value
上記のようにすることで、keyに対してvalueを設定することができます。既存のkeyがある場合はvalueの変更で、ない場合は追加となります。
>>> prime = {'two': 2, 'three': 3} >>> prime['five'] = 5 >>> prime {'two': 2, 'three': 3, 'five': 5} >>> prime {'two': 2, 'three': 3, 'five': 5, 'seven': 6} >>> prime['seven'] = 7 >>> prime {'two': 2, 'three': 3, 'five': 5, 'seven': 7}
辞書の結合
update()により辞書を結合することができます。
- dict1.update(dict2): dict1にdict2を結合する。同じキーを持つものが存在する場合は、dict2が優先される。
>>> prime1 = {'two': 2, 'three': 3} >>> prime1 = {'two': 2, 'three': 3, 'five': 4} >>> prime2 = {'five': 5, 'seven': 7} >>> prime1.update(prime2) >>> prime1 {'two': 2, 'three': 3, 'five': 5, 'seven': 7}
要素とキーの削除
要素を削除するには、delかclear()を使います。
- del dict[key]: 指定したkeyに対応するvalueが削除されます。
- dict.clear(): 辞書から全てのキーと値が削除されます。(dict = {}でも同じ)
>>> del prime1['seven'] >>> prime1['seven'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'seven' >>> prime1 {'two': 2, 'three': 3, 'five': 5} >>> prime1.clear() >>> prime1 {}
値の取得
要素を取得するには、キーで指定します。 全ての値を取得するには、values()を使います。
- dict['key']: dictの中からkeyに対応するものが返される。対応するものがなければ例外が発生する。
- dict.values(): dictに含まれる全ての値を返す。
>>> prime = {'two': 2, 'three': 3} >>> prime['two'] 2 >>> prime['five'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'five' >>> prime.values() dict_values([2, 3])
キーの取得
キーを取得するには、keys()を使います。
- dict.keys(): dictに含まれる全てのキーを返す。
>>> prime.keys() dict_keys(['two', 'three'])
キーと値の取得
キーと値をペアで取り出すには、items()を使います。
- dict.items(): dictに含まれるキーと値のペアを返す。
>>> prime.items() dict_items([('two', 2), ('three', 3)])
最後に
お疲れ様でした。次回は集合の説明です。集合が終われば制御構造の説明をします。ここから面白くなってくるので頑張りましょう。