Python字典键修改问题:如何更改字典键并保留对应数据
修改Python字典键名的实用方法
嘿,针对你在开发类数据库系统时遇到的字典键名修改需求,我给你几个适配Python 3.7.0b4版本的实用方案,能轻松把name键改成你想要的名称,同时完全保留它关联的嵌套数据:
你的原始字典是:
{'lastExecution': '1-1-1970', 'wachtwoord': 'wachtwoord', 'name': {'laatsteUpdate': '1-1-1970', 'puntenAantal': '0'}}
方法一:直接赋值+删除旧键(最简单)
这是最直观的方式,先把新键指向旧键的对应值,再删掉旧键:
# 先定义你的字典 my_dict = {'lastExecution': '1-1-1970', 'wachtwoord': 'wachtwoord', 'name': {'laatsteUpdate': '1-1-1970', 'puntenAantal': '0'}} # 把新键(比如'user_name')赋值为旧键'name'的值 my_dict['user_name'] = my_dict['name'] # 删除旧键'name' del my_dict['name']
注意:这种方法会把新键添加到字典的末尾,不过Python 3.7+已经支持字典的插入顺序保留,如果你对键的位置没有要求,这个方法最省事。
方法二:遍历构建新字典(保持原键顺序)
如果需要严格保留原来的键顺序,你可以遍历原字典的键值对,构建一个新字典:
my_dict = {'lastExecution': '1-1-1970', 'wachtwoord': 'wachtwoord', 'name': {'laatsteUpdate': '1-1-1970', 'puntenAantal': '0'}} new_dict = {} for key, value in my_dict.items(): # 遇到'name'键时替换成新名称,其他键保持不变 if key == 'name': new_dict['user_name'] = value else: new_dict[key] = value # 把新字典赋值给原变量 my_dict = new_dict
这样新字典的键顺序和原字典完全一致,只是把name换成了你想要的名称。
方法三:字典推导式(简洁版)
用字典推导式可以把上面的遍历逻辑压缩成一行代码,同样能保留原顺序:
my_dict = {'lastExecution': '1-1-1970', 'wachtwoord': 'wachtwoord', 'name': {'laatsteUpdate': '1-1-1970', 'puntenAantal': '0'}} # 用推导式替换键名,这里把'name'换成'user_name' my_dict = { 'user_name' if k == 'name' else k: v for k, v in my_dict.items() }
这种写法更简洁,适合追求代码紧凑的场景,效果和方法二完全一样。
不管用哪种方法,原name键关联的嵌套字典数据都会完整保留,因为我们只是复制了数据的引用,不会修改嵌套内容本身。
内容的提问来源于stack exchange,提问作者S.Benten
相关产品推荐
相关产品推荐

