辞書オブジェクトは「{ キー : 値, … }」の形で作成します。
# 例
dic = {'name':'Taro', 'age': 26]
# 空の辞書
dic = {}
値を取得するには「辞書オブジェクト[キー]」を使います。
キーが存在しない場合はKeyErrorの例外が送出されます。
>>> dic = {'name':'Taro', 'age':26}
>>> dic['name']
'Taro'
>>> dic['sex']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'sex'
「辞書オブジェクト.get(キー, 値)」は、キーが登録されている場合は「辞書オブジェクト[キー]」を返します。
キーが登録されていない場合は、値を返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.get('name', 'Hanako')
'Taro'
>>> dic.get('sex', 'man')
'man'
「辞書オブジェクト[キー] = 値」で要素を追加します。
すでにキーが登録されているときは、値を変更します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic['sex'] = 'man' #追加した
>>> dic
{'age': 26, 'name': 'Taro', 'sex': 'man'}
>>> dic['sex'] = 'woman' #変更した
>>> dic
{'age': 26, 'name': 'Taro', 'sex': 'woman'}
キーが存在しない場合に値を設定する場合は、「辞書オブジェクト.setdefault(キー, 値)」を使用します。
キーが存在する場合は、値は変更されずに、「辞書オブジェクト[キー]」を返します。
キーが存在しない場合は、値を設定して、その値を返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.setdefault('name', 'Hanako')
'Taro'
>>> dic.setdefault('sex', 'man')
'man'
>>> dic
{'age': 26, 'name': 'Taro', 'sex': 'man'}
なお、「辞書オブジェクト.get(キー、値)」は、値を設定しません。
要素を削除するには「del(辞書オブジェクト[キー])」を使います。
>>> dic
{'age': 26, 'name': 'Taro', 'sex': 'woman'}
>>> del(dic['sex'])
>>> dic
{'age': 26, 'name': 'Taro'}
すべての要素を削除するには「辞書オブジェクト.clear()」を使います。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.clear()
>>> dic
{}
「辞書オブジェクト.pop(キー, 値)」はキーの要素を削除します。
キーの要素が存在するときは、辞書オブジェクト[キー]を返します。
キーの要素が存在しないときは、値を返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.pop('sex', 'man')
'man'
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.pop('name', 'Hanako')
'Taro'
>>> dic
{'age': 26}
「辞書オブジェクト.popitem()」は要素を削除し、削除した要素のタプルを返します。
>>> dic = {'name':'Taro', 'age':26}
>>> dic.popitem()
('age', 26)
>>> dic
{'name': 'Taro'}
>>> dic.popitem()
('name', 'Taro')
>>> dic
キーの一覧を取得するには「辞書オブジェクト.keys()」を使います。
キーのリストを返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.keys()
['age', 'name']
値の一覧を取得するには「辞書オブジェクト.values()」を使います。
値のリストを返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.values()
[26, 'Taro']
キーと値の一覧を取得するには、「辞書オブジェクト.items()」を使います。
キーと値のペアのタプルをリストで取得します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.items()
[('age', 26), ('name', 'Taro')]
キーが登録されているかどうかを調べるには「辞書オブジェクト.has_key(キー)」を使います。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic.items()
[('age', 26), ('name', 'Taro')]
>>> dic.has_key('name')
True
>>> dic.has_key('age')
True
>>> dic.has_key('sex')
False
「辞書オブジェクト.has_key」の代わりに「キー in 辞書オブジェクト」を使うこともできます。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> 'age' in dic
True
>>> 'sex' in dic
False
「キー not in 辞書オブジェクト」は「not キー in 辞書オブジェクト」と同じです。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> 'sex' not in dic
True
>>> not 'sex' in dic
True
辞書オブジェクトの要素の数は「len(辞書オブジェクト)」で取得できます。
>>> dic = {'name':'Taro', 'age':26}
>>> len(dic)
2
「辞書オブジェクト.update(other)」は、otherの内容を辞書オブジェクトに追加します。
キーが重複する場合は、otherの内容で上書きされます。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> opt = {'sex':'man', 'job':'teacher', 'sex':'woman'}
>>> dic.update(opt)
>>> dic
{'job': 'teacher', 'age': 26, 'name': 'Taro', 'sex': 'woman'}
辞書の複製を作成するには「辞書オブジェクト.copy()」を使用します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic2 = dic.copy()
>>> dic2
{'age': 26, 'name': 'Taro'}
>>> dic2['sex'] = 'man'
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic2
{'age': 26, 'name': 'Taro', 'sex': 'man'}
「dict(辞書オブジェクト)」も複製を作成します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> dic2 = dict(dic)
>>> dic2
{'age': 26, 'name': 'Taro'}
>>> dic['sex'] = 'man'
>>> dic
{'age': 26, 'name': 'Taro', 'sex': 'man'}
>>> dic2
{'age': 26, 'name': 'Taro'}
「辞書オブジェクト.iteritems()」はキーと値のペアのタプルのイテレータを返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> for k,v in dic.iteritems():
... print k,'=',v
...
age = 26
name = Taro
「辞書オブジェクト.iterkeys()」はキーのイテレータを返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> for k in dic.iterkeys():
... print k
...
age
name
「辞書オブジェクト.itervalues()」は値のイテレータを返します。
>>> dic
{'age': 26, 'name': 'Taro'}
>>> for v in dic.itervalues():
... print v
...
26
Taro