Pythonの「二次元」辞書の定義と実現方法

2430 ワード

本明細書の例は、Pythonの「二次元」辞書の定義と実現方法について述べる。皆さんに参考にしてあげます。具体的には以下の通りです。
Pythonの中のdictは迅速な検索を実現することができます。配列に二次元配列があるように二次元辞書がありますか?例えば、二つのキーワードを検索する必要があります。2 D dictは通過できます

dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}}

を選択して、

dict_2d['a']['b']

訪問します。しかし、新しい「key-value」を追加すると、複雑です。一次元辞書に対して、使えます。

dict_1d = dict()
dict_1d['a'] = 1

または

dict_1d.update({'a': 1})

実現します。しかし、「2-D」dictionaryに「key-value」を追加した場合、簡単には使えません。

dict_2d['a']['c'] = 8

の形式です。二次元辞書の二階建てのkeyとvalueの間は紛らわしいので、最初のkeyがすでに存在しているかどうかを判断する必要があります。二次元辞書を追加すると、一つの関数で簡単に実現できます。

def addtwodimdict(thedict, key_a, key_b, val):
  if key_a in adic:
    thedict[key_a].update({key_b: val})
  else:
    thedict.update({key_a:{key_b: val}})

例えば、都市間の距離を調べるために使うことができます。

mapdict = dict()
addtwodimdict(mapdict, 'Beijing', 'Guangzhou', 1897)
addtwodimdict(mapdict, 'Chengdu', 'Guangzhou', 1243)
addtwodimdict(mapdict, 'Guangzhou', 'Shanghai', 1212)
addtwodimdict(mapdict, 'Beijing', 'Chengdu', 1516)
addtwodimdict(mapdict, 'Chengdu', 'Shanghai', 1657)
addtwodimdict(mapdict, 'Beijing', 'Shanghai', 1075)
print 'The distance between Chengdu and Guangzhou is ',mapdict['Chengdu']['Guangzhou']

やはり便利です。
Python関連の内容についてもっと興味がある方は、本駅のテーマを見てください。「Python辞書の操作テクニックのまとめ」「Python Socketプログラミング技術のまとめ」「Python関数使用テクニックのまとめ」「Python文字列操作テクニックのまとめ」「Python入門と階段の経典教程」「Pythonファイルとディレクトリ操作の概要
ここで述べたように、皆様のPythonプログラムの設計に役に立ちます。