字典dict批量更改键/更改指定某一个键 python

本文介绍Python中字典(dict)的键替换方法,包括单个键和批量键的替换,并解析了Python3中dict.keys()迭代器特性带来的KeyError问题及解决方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一) dict 更改指定某一个键

需求:替换rusult中的键 14 为 'E     即, 14 -> 'E'

result = {1 : 'note', 214 : 'jack', 14 : 'jupyter', 56 : 'pycharm'}
result['E'] = result.pop(14)
result

输出: {1: 'note', 214: 'jack', 56: 'pycharm', 'E': 'jupyter'}

(二) dict  批量 更改 键

需求:批量替换为map1中的键值对

错误示例:
map1 = {1:'A', 2:'B', 3:'C', 4:'D', 5:'S', 14:'E', 53:'A+', 54:'B+', 55:'C+', 56:'D+', 57:'E+', 
              58:'-', 213:'Da', 214:'Db', 215:'Ea', 216:'Eb'} 
result = {1 : 'note', 214 : 'jack', 14 : 'jupyter', 56 : 'pycharm'}

for k in result.keys():   # 错误示例
    result[map1[k]] = result.pop(k)   # KeyError: 'A', 表示找不到'A'.

输出:
在这里插入图片描述
知识点:

  1. 在python2中,字典dict.keys()的内建方法会以列表list的形式返回字典的所有键。 到了python3中,dict.keys()是以迭代器Iterator的形式生成的字典所有键。
  2. KeyError: ‘A’, 表示找不到’A’.

错因: for循环执行第一次时,可以顺利执行完毕,当执行第二次时,result.keys()动态的迭代,重新生成所有的键,会把新添加的’A’也作为键进行遍历, 当 k = 'A’时,map1[‘A’]是找不到的(map1中没有’A’这个键),所以报错.

正确示例:
map1 = {1:'A', 2:'B', 3:'C', 4:'D', 5:'S', 14:'E', 53:'A+', 54:'B+', 55:'C+', 56:'D+', 57:'E+', 
              58:'-', 213:'Da', 214:'Db', 215:'Ea', 216:'Eb'} 
result = {1 : 'note', 214 : 'jack', 14 : 'jupyter', 56 : 'pycharm'}

for k in list(result):  # 争取示例,将其变为list
    result[map1[k]] = result.pop(k)
result

输出:{'A': 'note', 'Db': 'jack', 'E': 'jupyter', 'D+': 'pycharm'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值