我在 Python 3.9
我有的是兩本字典。
dict1= {'ZS': [1, 2], 'ZP': [3], 'XS': [4, 5], 'XP': [6, 7]}
dict2= {'a': {}, 'b' : {}}
如何獲取dict1的每兩個鍵并將它們作為dict-value添加到dict2中。
像下面
所需的字典
result_dict= {'a': {'ZS': [1, 2], 'ZP': [3]}, 'b' : {'XS': [4, 5], 'XP': [6, 7]}}
uj5u.com熱心網友回復:
您的問題的問題是您沒有清楚地解釋分裂的標準是什么。
另一個問題是,當您在字典中啟動字典時,就像您在 dict2 中所做的那樣。如果您將“a”或“b”值發送到變數,例如 c:
c = dict2['a']
它不會創建一個新的 { },它會在 dict2['a'] 或 dict2['b'] 中傳遞 '{ }' 的參考,當你更改 c 時,它會同時更改 c 和 dict2['a '] 價值
這很hacky,在嘗試解決方案時卡住了嘿嘿。
如果您使用的標準是鍵的第一個字母,您可以執行以下操作:
dict1 = {'ZS': [1, 2], 'ZP': [3], 'XS': [4, 5], 'XP': [6, 7]}
dict2 = {'a': {}, 'b': {}}
result_dict = {}
for x in dict2.keys():
result_dict[x] = {}
for key in dict1.keys():
if key[0:1] == "Z":
result_dict['a'][key] = dict1[key]
elif key[0:1] == "X":
result_dict['b'][key] = dict1[key]
print(dict1)
print(dict2)
print(result_dict)
{'ZS': [1, 2], 'ZP': [3], 'XS': [4, 5], 'XP': [6, 7]}
{'a': {}, 'b': {}}
{'a': {'ZS': [1, 2], 'ZP': [3]}, 'b': {'XS': [4, 5], 'XP': [6, 7]}}
uj5u.com熱心網友回復:
您可以執行以下操作:
keys1 = list(dict1)
keys2 = list(dict2)
result_dict = {
keys2[i]: {
keys1[2*i]:dict1[keys1[2*i]],
keys1[2*i 1]:dict1[keys1[2*i 1]]
}
for i in range(len(keys2))
}
但在我看來,相信字典鍵的順序是一個非常糟糕的習慣(除非你使用OrderedDict)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/489289.html
標籤:python-3.x
上一篇:識別兩個字典串列之間的更改值
