ネストされたPythonディクショナリを再帰的に反復する方法は?
以下にネストされたディレクトリオブジェクトを示します
D1={1: {2: {3: 4, 5: 6}, 3: {4: 5, 6: 7}}, 2: {3: {4: 5}, 4: {6: 7}}}
例
ディレクトリ内の各アイテムの値コンポーネントがディレクトリ自体である場合、次の再帰関数が繰り返し呼び出されます。
def iterdict(d): for k,v in d.items(): if isinstance(v, dict): iterdict(v) else: print (k,":",v) iterdict(D1)
出力
最初のディクショナリオブジェクトがこの関数に渡されると、すべてのキーと値のペアがトラバースされます。出力は次のとおりです。
3 4 5 6 4 5 6 7 4 5 6 7
-
Pythonで辞書を反復処理する方法は?
Pythonディクショナリオブジェクトを反復処理する方法は2つあります。 1つは、keys()リストの各キーに関連付けられた値をフェッチすることです。 >>> D1 = {1:a, 2:b, 3:c} >>> for k in D1.keys(): print (k, D1[k]) 1 a 2 b 3 c タプルのリストを返す辞書オブジェクトのitems()メソッドもあり、各タプルにはキーと値があります。次に、各タプルが2つの変数に解凍され、一度に1つの辞書アイテムが出力されます。 >>> D1={1:a, 2:b, 3:c
-
Pythonで文字列を辞書に変換する方法は?
ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、文字列、数値、タプル、リスト、dict、ブール値、およびなしのPythonリテラル構造のみで構成されます。例: >>>import ast >>>x = ast.literal_eval("{'foo' : 'bar', 'hello' : 'world'}") >>