Pythonの基本的な辞書の操作方法を整理します

4530 ワード

Pythonの辞書はPythonのキー値マッピングのデータ構造であり、優雅な操作辞書について説明する.1.1辞書の作成
Pythonには2つの方法で辞書を作成することができます.1つ目はカッコを使用することで、もう1つは内蔵関数dictを使用することです.

>>> info = {}
>>> info = dict()


1.2辞書の初期化
Pythonは辞書の作成時に辞書を初期化できます

>>> info = {"name" : 'cold'}
>>> info = dict(name = 'cold')    #    


第2の方法はより優雅で特殊な文字の入力を減らすことが明らかになったが、第2の方法は適切ではない場合がある.

>>> key = 'name'
>>> info = { key :'cold'} # {'name':'cold'}
>>> info = dict(key = 'cold') # {'key': 'cold'}


明らかに2つ目の方法は見つけにくいバグを引き起こす.
Python辞書には、辞書のfromkeysメソッドを使用してリストから要素をキーとして取得し、Noneまたはfromkeysメソッドの2番目のパラメータで初期化する初期化方法もあります.

>>> info = {}.fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'])
>>> info
{'blog': None, 'name': None}
>>> info = dict().fromkeys(['name', 'blog'], 'linuxzen.com')
>>> info
{'blog': 'linuxzen.com', 'name': 'linuxzen.com'}


1.3優雅なキー値の取得
辞書はキーの値を取得できます

>>> info = {'name':'cold', 'blog':'linuxzen.com'}
>>> info['name']
'cold'


しかし、存在しないキーの値を取得するとトリガーされるKeyError異常で、辞書にはgetメソッドがあり、辞書getメソッドを使用してより優雅に辞書を取得することができます.

>>> info = dict(name= 'cold', blog='www.linuxzen.com')
>>> info.get('name')
'cold'
>>> info.get('blogname')
None
>>> info.get('blogname', 'linuxzen')
'linuxzen'


getメソッドを使用して存在しないキー値を取得すると異常がトリガーされないのを見て、同時にgetメソッドは2つのパラメータを受信して、このキーが存在しないときに2番目のパラメータの値を返します.getを使用してより優雅に1.4更新/追加することができます.
Python辞書では、キーをインデックスとして使用して値にアクセス/更新/追加できます.

>>> info = dict()
>>> info['name'] = 'cold'
>>> info['blog'] = 'linuxzen.com'
>>> info
{'blog': 'linuxzen.com', 'name': 'cold'}
>>> info
{'blog': 'linuxzen.com', 'name': 'cold night'}


同時にPython辞書のupdateメソッドも辞書を更新して追加することができます

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.update({'name':'cold night', 'blogname':'linuxzen'})
>>> info
{'blog': 'linuxzen.com', 'name': 'cold night', 'blogname': 'linuxzen'}
>>> info.update(name='cold', blog='www.linuxzen.com') #    
>>> info
{'blog': 'www.linuxzen.com', 'name': 'cold', 'blogname': 'linuxzen'}


Python辞書のupdateメソッドは、辞書を1つ使用して辞書を更新したり、パラメータ伝達dict関数のような方法で辞書を更新したりすることができます.
Python内蔵キーワードdelを呼び出してキー値を削除できます

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info
{'blog': 'linuxzen.com', 'name': 'cold'}
>>> del info['name']
>>> info
{'blog': 'linuxzen.com'}


辞書のpopメソッドを使用してキー値を取り出し、削除することもできます.

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.pop('name')
'cold'
>>> info
{'blog': 'linuxzen.com'}


1.6その他の操作
すべてのキーを取得

>>> info = dict(name='cold', blog='linuxzen.com')
>>> info.keys()
['blog', 'name']


key,valueを取得してループする

>>> info = dict(name='cold', blog='linuxzen.com')
>>> for key, value in info.items():
...   print key, ':', value
... 
blog : linuxzen.com
name : cold