2
在dict3中獲得結果有沒有更簡單的方法?在詞典中實現結果的最佳pythonic方法
我需要dict3得到這樣的:
{'Runes': ['Ber', 'Ko'],
'Swords': ['Long swords', 'Short sword'],
'Gold': ['12','125'],
'Coal':[],
'Wood': [],
'Water':['21']}
這裏是我的不是最佳的解決方案:
dict1 = {'Runes':['Ber','Ko'],'Swords':['Long sword'],'Gold':['','12','',''], 'Coal':['','']}
dict2 = {'Swords':['Short sword'],'Gold':['125'],'Wood':['',''],'Water':['','', '21'], 'Coal':['']}
dict3 = {}
for k1 in dict1.keys():
if k1 not in dict3.keys():
dict3.setdefault(k1, '')
for k2 in dict2.keys():
if k2 not in dict3.keys():
dict3.setdefault(k2, '')
for k3,v3 in dict3.items():
for k1,v1 in dict1.items():
if k3 == k1:
dict3[k3] = v1
for k3,v3 in dict3.items():
for k2,v2 in dict2.items():
if k3 == k2 and type(v3) == str:
dict3[k3] = v2
for k3,v3 in dict3.items():
for k2,v2 in dict2.items():
if k3 == k2 and v2 not in v3 and v2 != v3:
dict3[k3] = v3 + v2
for k3,v3 in dict3.items():
for k2,v2 in dict2.items():
if k3 == k2 and '' in v3:
s = []
for i in v3:
if i not in ['']:
s.append(i)
dict3[k3] = s
其中python版本是你的目標是? – Miket25
+3.5會好的 –