人生苦短,我选择Python上一篇传送门小白学Python(一):入门小白学Python(二):基本数据类型(顶)小白小白学习Python(三):基本数据类型(下)小白学习Python(四):变量的基本操作小白学习Python(五):基本运算符(上)小白学习Python(六):基本运算符(下)Python入门篇(七):流程控制基础(上)Python入门篇(八):流程控制基础篇(下)Python入门篇(九):数据结构基础(列表)(上篇)小白学习Python(10):基本数据结构(列表)(下)小白学习Python(11):基本数据结构(元组)小白学习Python(12):基本数据结构(字典)(上)字典内置函数&方法(如果是看表情可以退出,本文没有表情)词典提供了很多内置的方法来操作字典。老规矩,边看代码边介绍。dict.keys()函数:返回一个迭代器,可以使用list()将其转换为列表,其中包含所有键。dict1={'name':'geekdigging','age':2}print(dict1.keys())print(list(dict1.keys()))print(type(list(dict1.keys())))结果如下:dict_keys(['name','age'])['name','age']dict.values()功能:返回一个迭代器,可以转化为A包含所有值的列表。print(dict1.values())print(list(dict1.values()))print(type(list(dict1.values())))结果如下:dict_values(['geekdigging',2])['geekdigging',2]dict.items()功能:返回列表中的(键,值)元组的可遍历数组。print(dict1.items())print(list(dict1.items()))print(type(list(dict1.items())))结果如下:dict_items([('name','geekdigging'),('age',2)])[('name','geekdigging'),('age',2)]dict.get(key,default=None)功能:返回指定键的值,如果该值不在字典中,则返回默认(无)值。print(dict1.get('name'))print(dict1.get('geekdigging'))的结果如下:geekdiggingNone因为geekdigging不是字典中的键,所以返回默认值None。dict.pop(key[,default])功能:删除字典中给定键key对应的值,返回值为删除后的值。必须给出键值。print(dict1.pop('age'))print(dict1)结果如下:2{'name':'geekdigging'}dict.setdefault(key,default=None)功能:类似于get(),但是如果键不存在于字典中,将添加键并将值设置为默认值。dict1.setdefault('age')print(dict1)的结果如下:{'name':'geekdigging','age':None}dict.update(dict2)的作用:更新key/value对字典dict2变成dict。dict2={'sex':'male'}dict1.update(dict2)print(dict1)结果如下:{'name':'geekdigging','age':None,'sex':'male'}dict.clear()功能:删除字典中的所有元素。注意:删除字典中的所有元素,而不是删除字典。dict2.clear()print(dict2)的结果如下:{}dict.copy()功能:返回字典的浅拷贝。注意:这里的copy是浅拷贝,估计有编程经验的同学理解起来也不难。没有经验的同学请慢慢听我说。浅拷贝本质上是复制一个引用,而不是整个内容。比如我有一个苹果,浅拷贝一个给小明。我咬了一口。我的苹果,可是小明发现他的苹果也被咬了。dict3={'name':'geekdigging','age':[1,2,3]}#浅拷贝:引用对象dict4=dict3print(id(dict3))print(id(dict4))#浅拷贝:深复制父对象(一级目录),不复制子对象(二级目录),或者参考dict5=dict3.copy()dict3['age'].remove(1)print(dict3)print(dict5)print(id(dict3))print(id(dict5))结果如下:24189909110642418990911064{'name':'geekdigging','age':[2,3]}{'name':'geekdigging','age':[2,3]}24189909110642418991599688这个例子有点难懂,别急,慢慢细细品味。如果我想深度复制所有内容,我该怎么做?可以导入复制模块实现。importcopydict3={'name':'geekdigging','age':[1,2,3]}dict6=copy.deepcopy(dict3)dict3['age'].remove(1)print(dict3)print(dict6)print(id(dict3))print(id(dict6))结果如下:{'name':'geekdigging','age':[2,3]}{'name':'geekdigging','age':[1,2,3]}24189916021682418991602008对于刚接触2008的人来说,上面两个例子不太好理解。如果大家在理解上有什么问题,可以在公众号留言问我。老生常谈多BB句,请同学们自行练习示例代码。示例代码本系列所有代码编辑器都会放在代码管理仓库Github和Gitee上,方便大家使用。示例代码-Github示例代码-Gitee如果我的文章对你有帮助,请扫码关注作者的公众号:获取最新干货推送:)