博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习-字典的增删改查
阅读量:6096 次
发布时间:2019-06-20

本文共 2925 字,大约阅读时间需要 9 分钟。

1 dic1 = {
'name':'paoche',2 'age':19,3 'active':['beijing','hebei'],4 'id':{
'wangyi':'skmdod008b',5 'sina':'skmdod00bc'6 }7 }

一、字典的增

方法1:直接新增键值对,若无此键则新增键值对,有此键则修改值

1 dic1['high'] = 180      #没有键值对,则追加2 dic1['age'] = 30        #有键值,则修改3 print(dic1)4 """5 结果为:6 {'name': 'paoche', 'age': 19, 'active': ['beijing', 'hebei'], 'id': {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}}7 {'name': 'paoche', 'age': 30, 'active': ['beijing', 'hebei'], 'id': {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}, 'high': 180}8 """

方法2:通过 setdefault()方法,若无此键则新增键值对,有此键则不做任何操作

1 dic1.setdefault('weight',185)           #没有键值对,则追加2 dic1.setdefault('name','xiaobai')       #有键值,则不做任何操作3 print(dic1)4 """5 结果为:6 {'name': 'paoche', 'age': 19, 'active': ['beijing', 'hebei'], 'id': {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}, 'weight': 185}7 """

 

二、字典的删

方法1:使用 pop() 方法,按键删除,返回被删除的键值对中的值,没有对应的键则报错,可以设置没有键时返回的值

1 print(dic1.pop('id'))           #按键删除,返回被删除的键值对中的值,没有对应的键则报错2 print(dic1.pop('id',None))      #按键删除,若没有该键,则返回指定的值,一般返回None,也可以是任意内容3 print(dic1)4 """5 结果为:6 {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}7 None8 {'name': 'paoche', 'age': 19, 'active': ['beijing', 'hebei']}9 """

方法2:使用 popitem() 方法,随机删除键值对,返回被删除键值组成的元组

1 print(dic1.popitem())       #随机删除,返回被删键值组成的元组2 """3 结果为:4 ('id', {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'})5 """

方法3:使用 clear() 方法,清空字典,返回值为None

1 print(dic1.clear())     #返回None2 print(dic1)3 """4 结果为:5 None6 {}7 """

方法4:使用del,删除指定的键值对(没有键则报错),或者删除整个字典

1 del dic1['id']2 print(dic1)3 del dic14 """5 结果为:6 {'name': 'paoche', 'age': 19, 'active': ['beijing', 'hebei']}7 """

 

三、字典的改

方法1:通过键,直接改值

1 dic1['age'] = 30

方法2:使用 update() 方法

1 dic2 = { 2     'name':'paoche', 3     'age':19 4 } 5 dic3 = { 6     'age':30, 7     'weight':180 8 } 9 dic2.update(dic3)    #将dic3中的数据更新dic2,有则修改,没有则新加10 print(dic2)11 """12 结果为:13 {'name': 'paoche', 'age': 30, 'weight': 180}14 """

 

四、字典的查

方法1:直接通过键查询值,没有该键则报错

1 print(dic1['age'])2 '''3 结果为:4 195 '''

方法2:使用 get() 方法查询键对应的值,返回值,没有该键则返回None,可设置返回值

1 print(dic1.get('age'))2 print(dic1.get('age1'))3 print(dic1.get('age1','没有对应的键'))4 '''5 结果为:6 197 None8 没有对应的键9 '''

方法3:使用 keys() 方法,查询所有的键,返回列表

1 print(dic1.keys())2 '''3 结果为:4 dict_keys(['name', 'age', 'active', 'id'])5 '''

方法4:使用 values() 方法,查询所有的值,返回所有值组成的列表

1 print(dic1.values())2 '''3 结果为:4 dict_values(['paoche', 19, ['beijing', 'hebei'], {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}])5 '''

方法5:使用 items() 方法,获取所有键值对,返回列表,每个元素为键值对组成的元组

1 print(dic1.items())2 '''3 结果为:4 dict_items([('name', 'paoche'), ('age', 19), ('active', ['beijing', 'hebei']), ('id', {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'})])5 '''

items()取出的列表可以直接赋值给变量使用

1 for k,v in dic1.items():2     print(k,v)3 '''4 结果为:5 name paoche6 age 197 active ['beijing', 'hebei']8 id {'wangyi': 'skmdod008b', 'sina': 'skmdod00bc'}9 '''

 

转载于:https://www.cnblogs.com/ershoupaoche/p/9505770.html

你可能感兴趣的文章
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>