字典的修改
字典创建好了以后,可能数据需要修改可以通过以下几种方式修改字典。
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组成的一个元组类型数据。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!