字典的修改

2023-12-15 10:23:50

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

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组成的一个元组类型数据。

文章来源:https://blog.csdn.net/zhao_god/article/details/134869479
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。