[英]Create new dict from values in a dict and values in nested dict
我想通过 2 个字典的值创建新字典:dict1 和 dict2
dict1 = {'Jame': {'ID':'158',
'Age':'28',
'Tall':'5.11',
...,
'Point': [{'IELTS':'525',
'SAT':'700',
'TOEFL':'500',
...],
'Hair':'Blond',
'Gender':'Male',
...},
'Caroline': {'ID':'135',
'Age':'26',
'Tall':'5.7',
...,
'Point': [{'IELTS':'655',
'SAT':'700',
'TOEFL':'500',
...],
'Hair':'Black',
'Gender':'Female',
...}}
和
dict2 = {'Age'='A1','Tall'='A2','Point'='A3','IELTS'='B1','SAT'='B2','TOEFL'='B3'}
我想通过 dict1 和 dict2 的值创建新的字典。 我想要 Output:
new = {'Jame': {'ID':'158',
'A1':'28',
'A2':'5.11',
...,
'A3': [{'B1':'525',
'B2':'700',
'B3':'500',
...],
'Hair':'Blond',
'Gender':'Male',
...},
'Caroline': {'ID':'135',
'A1':'26',
'A2':'5.7',
...,
'A3': [{'B1':'655',
'B2':'700',
'B3':'500',
...],
'Hair':'Black',
'Gender':'Female',
...}}
我会尝试一些代码,但它不起作用
newdict = dict(zip(dict2.values(), dict1.values()))
要么
newdict = {({v for k,v in dict2.items()} if key in dict2.keys() else key):value for key, value in dict1.items()}
要么
newdict = {dict1.get(key, dict2[key]):key for key in dict2}
你可以这样做:
import ast
dict1 = {'Jame': {'ID': '158',
'Age': '28',
'Tall': '5.11',
'Point': [{'IELTS': '525',
'SAT': '700',
'TOEFL': '500'}],
'Hair': 'Blond',
'Gender': 'Male'},
'Caroline': {'ID': '135',
'Age': '26',
'Tall': '5.7',
'Point': [{'IELTS': '655',
'SAT': '700',
'TOEFL': '500'}],
'Hair': 'Black',
'Gender': 'Female'}}
dict2 = {'Age': 'A1', 'Tall': 'A2', 'Point': 'A3', 'IELTS': 'B1', 'SAT': 'B2', 'TOEFL': 'B3'}
string_dict = str(dict1)
for k, v in dict2.items():
string_dict = string_dict.replace(k, v)
dict1 = ast.literal_eval(string_dict)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.