Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python-フラット化された辞書をネストされた辞書に変換します


Python辞書にはキーと値があります。ネストされた辞書をマージする辞書が2つ以上ある場合は、次の方法を使用できます。今年は、ネストされた辞書のキーとなる新しいキーとともに辞書が提供されます。

キーの割り当て

このアプローチでは、新しい空の辞書を作成します。次に、指定された辞書を新しい各キーに割り当てます。結果の辞書は、キーが割り当てられたネストされた辞書になります。

dictA = {'Sun': 1, 'Mon': 2}
dictB = {'Tue': 3, 'Sun': 5}

# Given Dictionaries
print("DictA : ",dictA)
print("DictB: ",dictB)

# Using key access and dict()
res = dict()
res['Netsed_dict_1'] = dictA
res['Netsed_dict_2'] = dictB

# printing result
print("Netsed Dictionary: \n" ,res)
を使用

上記のコードを実行すると、次の結果が得られます-

出力

DictA : {'Sun': 1, 'Mon': 2}
DictB: {'Tue': 3, 'Sun': 5}
Netsed Dictionary:
{'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}

zipの使用

Jeep関数は、キーと辞書をタプルに変換できます。次に、dict関数を適用して、新しいキーと入力辞書を含む辞書である最終結果を取得します。

dictA = {'Sun': 1, 'Mon': 2}
dictB = {'Tue': 3, 'Sun': 5}

# Given Dictionaries
print("DictA : ",dictA)
print("DictB: ",dictB)

# Using zip
dict_keys = ['Netsed_dict_1','Netsed_dict_2']
all_dicts = [dictA,dictB]
res = dict(zip(dict_keys,all_dicts))
# printing result
print("Netsed Dictionary: \n" ,res)

上記のコードを実行すると、次の結果が得られます-

出力

DictA : {'Sun': 1, 'Mon': 2}
DictB: {'Tue': 3, 'Sun': 5}
Netsed Dictionary:
{'Netsed_dict_1': {'Sun': 1, 'Mon': 2}, 'Netsed_dict_2': {'Tue': 3, 'Sun': 5}}

  1. Pythonタプルを辞書に変換するにはどうすればよいですか?

    辞書オブジェクトは、dict()関数を使用して作成できます。この関数は、タプルのタプルを引数として取ります。各タプルには、キーと値のペアが含まれています。 >>> t=((1,'a'), (2,'b')) >>> dict(t) {1: 'a', 2: 'b'} キーと値を交換する場合 >>> t=((1,'a'), (2,'b')) >>> dict((y, x) for x, y in t) {'a': 1,

  2. Pythonで文字列を辞書に変換する方法は?

    ここでast.literal_eval()を使用して、文字列をPython式として評価できます。式ノードまたはPython式を含む文字列を安全に評価します。提供される文字列またはノードは、文字列、数値、タプル、リスト、dict、ブール値、およびなしのPythonリテラル構造のみで構成されます。例:  >>>import ast >>>x = ast.literal_eval("{'foo' : 'bar', 'hello' : 'world'}") >>