Python辞書の基礎

2934 ワード

一.辞書はインデックス(key)とそれに対応する値valueで構成され、辞書はPythonの唯一のマッピングタイプである.辞書は、関連配列またはハッシュテーブルとも呼ばれます.各キーと値はコロンで区切られ(:)、各ペアはカンマで区切られ、全体は括弧で囲まれています({}).キーはユニークでなければなりませんが、値は必要ありません.keys()はキーリストを返し、values()は値リストを返し、items()はキー値ペアのメタグループを返し、has_key(key)は、そのkeyが含まれているかどうかを返します.
>>> a={'name':'zhzhgo','age':25}
>>> a
{'age': 25, 'name': 'zhzhgo'}
>>> a.keys()
['age', 'name']
>>> a.values()
[25, 'zhzhgo']
>>> a.items()
[('age', 25), ('name', 'zhzhgo')]
>>> a.has_key('name')
True
>>>

2つの重要な点を覚えておく必要があります.
1.同じキーが2回表示されないようにします.作成時に同じキーが2回割り当てられた場合、後の値が記憶されます.
2.キーは、数値、文字列、またはメタグループで使用できますが、リストでは使用できません.
二.ファクトリメソッドdict()と組み込みメソッドfromkeys()で辞書を作成する
>>> a=dict((['name','zhzhgo'],['age',25]))
>>> a
{'age': 25, 'name': 'zhzhgo'}
>>> a={}.fromkeys(('x','y'),1)
>>> a
{'y': 1, 'x': 1}
>>>

三.遍歴辞書の表示
get()関数、あれば返し、なければデフォルト値を返す
>>> a={'name':'zhzhgo','age':25}
>>> a['name']
'zhzhgo'
>>> a['age']
25
>>> a.get('name')
'zhzhgo'
>>> a.get('height',180)
180
>>> for i in a:
 print i,
 
age name
>>> for i in a:
 print a[i],
 
25 zhzhgo
>>> for k,v in a.items():
 print k,v
 
age 25
name zhzhgo
>>>

四.字典を添削する
dict1.update(dict 2)dict 2をdict 1に更新し、なければ追加し、重複すれば上書きする
>>> a={'name':'zhzhgo','age':25}
>>> a['height']=180
>>> a
{'age': 25, 'name': 'zhzhgo', 'height': 180}
>>> del a['height']
>>> a
{'age': 25, 'name': 'zhzhgo'}
>>> b={'age':24}
>>> a.update(b)
>>> a
{'age': 24, 'name': 'zhzhgo'}
>>> b={'height':180}
>>> a.update(b)
>>> a
{'age': 24, 'name': 'zhzhgo', 'height': 180}
>>> h=a.pop('height')
>>> h
180
>>> a
{'age': 24, 'name': 'zhzhgo'}
>>> a.clear()
>>> a
{}
>>>

五.import jsonjson.dumps()符号化、辞書を文字列jsonに変換する.loads()復号、文字列を辞書に変換
>>> a={'name':'zhzhgo','age':25}
>>> import json
>>> json.dumps(a)
'{"age": 25, "name": "zhzhgo"}'
>>> b=json.loads('{"age": 25, "name": "zhzhgo"}')
>>> b
{u'age': 25, u'name': u'zhzhgo'}
>>>