0
req_dict = {
1: {'f1': 'name', 'f2': 'age', 'f3': 'class'},
2: {'f1': 'company', 'f2': 'salary', 'f3': 'age', 'f4': 'class'},
3: {'f1': 'Feature', 'f2': 'sum', 'f3': 'diff', 'f4': 'multiply', 'f5': 'div'}
}
level_input = [
{3: {'sum': 'NONE', 'diff': 'yes', 'multiply': 'NONE', 'div': 'NONE', 'FEATURE': 'Maths'}},
{2: {'COMPANY': 'NONE', 'SALARY': 'Pass', 'AGE': 'NONE', 'CLASS': 'unknown'}},
{1: {'NAME': 'Pass', 'AGE': 'NONE', 'CLASS': '3'}}
]
updated_level_input = [
{3: {'f1': 'Maths', 'f2': 'none', 'f3': 'yes', 'f4': 'NONE', 'f5': 'NONE'}},
{2: {'f1': 'NONE', 'f2': 'Pass', 'f3': 'NONE', 'f4': 'unknown'}},
{1: {'f1': 'Pass', 'f2': 'NONE', 'f3': '3'}}
]
我想下面的代碼
level_dict = {}
[level_dict.update(key) for key in levels_input]
for key in req_dict:
#print key
for dict_key in req_dict[key]:
print dict_key
searchKey = req_dict[key][dict_key]
print searchKey.upper()
if searchKey.upper() in level_dict[key].keys():
#print level_dict[key].keys()
req_dict[key][dict_key] = req_dict[key][searchKey.upper()]
else:
req_dict[key][dict_key] = level_dict[key][searchKey]
print [req_dict]
,但我得到的輸出
updated_level_input=[
{3: {'f1': 'Maths', 'f2': 'none', 'f3': 'yes', 'f4': 'NONE', 'f5': 'NONE'},
2: {'f1': 'NONE', 'f2': 'Pass', 'f3': 'NONE', 'f4': 'unknown'},
1: {'f1': 'Pass', 'f2': 'NONE', 'f3': '3'}}
]
基本上我試圖修改req_dict
輸入,這是不correct.i
應該修改level_input
列表
你能解釋一下預期的結果嗎? – number5
我必須修改原始列表(level_input),方法是將值字段中的每個字典鍵與列表和字典(輸入)中各個鍵的字典的每個值進行映射。如果匹配(例如:sum = sum,diff ='diff'然後用詞典鍵更新列表鍵,如[ {3:{'f1':'Maths','f2':'none','f3':'yes','f4':'NONE', 'f5':'NONE'}}, {2:{'f1':'NONE','f2':'Pass','f3':'NONE','f4':'unknown'}}, {1:{'f1':'Pass','f2':'NONE','f3':'3'}} –
我必須修改原始列表(level_input),方法是將值字段中的每個字典鍵與字典(輸入)中的各個鍵的字典中的每個值(req_dict)。如果存在匹配(例如,re_dict中的level_input = sum中的sum,req_input中的leve_input = diff中的diff),則更新列表鍵與字典鍵如[ {3:{'f1':'數學','f2':'無','f3':'是','f4':'無','f5':'無'}}, {2 :{'f1':'NONE','f2':'Pass','f3':'NONE','f4':'unknown'}}, {1:{'f1':'Pass' f2':'NONE','f3':'3'}} –