字典的修改

字典创建好了以后,可能数据需要修改可以通过以下几种方式修改字典。

1 通过键或update函数修改对应值

如果想修改字典某项数据可以通过键来修改对应值。

字典[key] = newvalue
 

例如:

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
d["wangli"] = 58

 

如果字典里不存在此key,那么就给字典新增一项数据。

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
print d
d["yangmi"] = 55
print d

 

程序执行结果:

{'liming': 98, 'wangli': 95, 'liping': 88, 'mali': 90}
{'liming': 98, 'yangmi': 55, 'wangli': 95, 'liping': 88, 'mali': 90}

 

update函数也可实现更新或者增加字典数据项的功能。

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
print d
e = {"yangmi" : 30, "reliya" : 33}
d.update(e)
print d
e = {"yangmi" : 13}
d.update(e)
print d

 

程序执行结果:

{'liming': 98, 'wangli': 95, 'liping': 88, 'mali': 90}
{'liming': 98, 'wangli': 95, 'reliya': 33, 'mali': 90, 'yangmi': 30, 'liping': 88}
{'liming': 98, 'wangli': 95, 'reliya': 33, 'mali': 90, 'yangmi': 13, 'liping': 88}

 

第一次update时字典d里是没有"yangmi"等key,那么字典e被加到了字典d里了,第二次的字典e里的"yangmi"这个key在字典里已存在,故只是更新了这个key所对应的值。

2 删除某项

删除字典某项数据可以用del函数或者pop函数。del的使用语法格式如下:

del 字典[key]
 

例如:

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
del d["wangli"]

 

或者用字典的pop函数删除指定key数据项,示例如下:

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
print d.pop("wangli")
print d

 

但是pop函数指定的key值不存在,则会报错异常,所以为了解决此问题,pop的用法通常是两个参数,一个是准备要删除的数据的key,另一个是假设key不存在的情况下返回某值,这样就不会报错异常了。

字典名.pop(key, value)
 

注意这里的value是在key不存在时pop的返回值,如果key存在pop返回key所对应的value值。

d = {"liming" : 98, "wangli":95, "mali":90, "liping" : 88}
ret = d.pop("liming")
print ret, d
ret = d.pop("liming", -1)
print ret, d
ret = d.pop("liming")
print ret, d

 

程序执行结果如下:

98 {'wangli': 95, 'liping': 88, 'mali': 90}
-1 {'wangli': 95, 'liping': 88, 'mali': 90}
Traceback (most recent call last):
  File "test.py", line 88, in <module>
    ret = d.pop("liming")
KeyError: 'liming'

 

第一次pop,键"liming"在字典d里是存在的,返回其对应值98,pop以后字典d里就没有“liming”这个key了,所以第二次pop时返回值为-1没有发生出错异常,而第三次pop的时候由于没有指定value而报错异常,所以pop(key, value)这种方式比较安全。

还有一个函数popitem是随机删除字典里的一项数据,返回的是这项数据的key和value组成的一个元组类型数据。

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hamilton_Huan

原创不易,结合业务原创更不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值