辞書
{}で作成
リストににているが、要素の順序が管理されていないので、要素を選択する
ときに0や1などのオフセットはつかわない。
代わりに、個々に値に一意なキーを与える。
キーは文字列の場合が多いが、Pythonのイミュータブル型ならなんでも
よい。ブール値、整数、float、タプル、文字列などである。
他の言語では、連想配列、ハッシュ、ハシュマップなどと呼ばれている
空辞書は
>>> empty_dict = {}
>>> empty_dict
{}
対話型インタープリタで辞書の名前を入力すると、そのなかキーと値が
表示される
Pythonでは、リスト、タプル、辞書の最後の要素の後ろにカンマを
のこしてもよい。
dict()を使った変換
◎2要素のリストのリストの例
>>> lol = [['a', 'b'], ['c', 'd'], ['e', 'f']]
>>> dict(lol)
('c': 'd', 'a': 'b', 'e': 'f',)
辞書内のキーの順序は決まっていない。
2要素のシーケンスを含むもろならなんでも使える。
◎2要素のタプルのリストの例
>>> lol = [('a', 'b'), ('c', 'd'), ('e', 'f')]
>>> dict(lol)
('c': 'd', 'a': 'b', 'e': 'f',)
◎2要素のリストのタプルの例
>>> lol = (['a', 'b'], ['c', 'd'], ['e', 'f'])
>>> dict(lol)
('c': 'd', 'a': 'b', 'e': 'f',)
◎2字の文字列のリスト例
>>> lol = ['ab', 'cd', 'ef']
>>> dict(lol)
('c': 'd', 'a': 'b', 'e': 'f',)
◎2字の文字列の1タプル例
>>> lol = (['ab', 'cd', 'ef')
>>> dict(lol)
('c': 'd', 'a': 'b', 'e': 'f',)
update()による辞書の結合
辞書のキーと値を別の辞書にコピーできる
>>>pythons.update(others)
delによる指定したキーの削除
辞書のキーと値を別の辞書にコピーできる
>>>del pythons['Mars']
clea()によるすべての要素の削除
辞書からすべてのキーと値を削除するには、clear()か、空辞書を代入
>>>pythons.clear()
>>>pythons = {}
inを使ったキーの有無のテスト
辞書にあるキーが含まれているか知りたい時
>>> 'Chapman' in pythos
true
keyによる要素の取得
キーが辞書になければ例外が発生する
例外を避けるにはget()関数を使う
>>> pythons.get('cleese', 'Not a pythons')
オプションを指定しなければNoneになる。対話型インタープリタには
なにも表示されない
kyes()によるすべてのキーの取得
Pyton2とpytho3では動作がことなるpyton3ではdict_keys()が
かえってくので、リストにするにはlist()関数を使う
>>>list(signals.keys())
values()によるすべての値の取得
>>>list(signals.values())
items()によるすべてのキー/値pペアの取得
>>>list(signals.items())
=による代入とcopy()によるコピー
リストと同様に、辞書に変更を加えると、その辞書を参照している
すべての名前に影響が及ぶ
別の辞書にキー/値ペアをコピーしたい場合はcopy()を使う
>>>original_signals = signals.copy()