You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于dict1与dict2的值替换key生成新字典?

解决字典嵌套键替换问题

首先纠正你给出的dict2语法错误,Python字典的键值对应该用冒号:而非等号=,正确的dict2写法如下:

dict2 = {'Age':'A1','Tall':'A2','Point':'A3','IELTS':'B1','SAT':'B2','TOEFL':'B3'}

你之前尝试的代码仅处理了单层字典结构,完全没考虑dict1里的嵌套字典与列表层级,因此无法实现需求。下面提供两种可行的实现方案:

方法一:分层遍历处理(针对当前数据结构)

直接匹配你的数据层级逻辑,处理过程清晰直观:

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'}

new_dict = {}
# 遍历每个用户条目
for name, user_details in dict1.items():
    processed_details = {}
    # 遍历用户的每个属性
    for key, value in user_details.items():
        # 替换外层键,无匹配则保留原键
        new_key = dict2.get(key, key)
        # 处理Point列表内的嵌套字典键替换
        if key == 'Point':
            processed_points = []
            for point_item in value:
                processed_point = {dict2.get(k, k): v for k, v in point_item.items()}
                processed_points.append(processed_point)
            processed_details[new_key] = processed_points
        else:
            processed_details[new_key] = value
    new_dict[name] = processed_details

print(new_dict)

方法二:递归通用处理(适配更复杂嵌套结构)

如果你的数据可能存在更多层级的嵌套,递归函数可以通用处理所有需要替换的键:

def replace_nested_keys(data, key_mapping):
    if isinstance(data, dict):
        return {key_mapping.get(k, k): replace_nested_keys(v, key_mapping) for k, v in data.items()}
    elif isinstance(data, list):
        return [replace_nested_keys(item, key_mapping) for item in data]
    else:
        return data

# 调用递归函数完成替换
new_dict = replace_nested_keys(dict1, dict2)
print(new_dict)

这个函数会自动识别字典、列表类型,逐层遍历并替换所有在dict2中存在的键,不管嵌套多少层都能适配。

内容的提问来源于stack exchange,提问作者HK Py

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:25:16