繁体   English   中英

从字典中的值和嵌套字典中的值创建新字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM