python基础—字典
阅读文本需要3分钟,不建议跳读
字典是python中最重要的数据类型,字典由“键-值”对组成的集合,字典中的“值”通过“键”来引用。这里将介绍字典的定义、访问、排序等功能。
字典的创建
字典的键值对之间由“逗号”隔开,并且被包含在一对花括号中,与Java中的HashMap
类作用相似。字典的创建非常简单:
1dict = {key : value1, key2 : value2,...}
创建空字典,只需一对花括号就可以了
1dict = {}
字典的key,可以是字符型,也可以是数字,例如
1dict1 = {'a' : 'apple', 'b' : 'banana'}
2dict1 = {1 : 'apple', '2 : 'banana'}
字典的访问
字典的访问与元组、列表的有所不同,元组和列表是通过数字索引来获取对应的值,而字典是通过key值获取相对应的value值。例如:
1value = dict[key]
字典的添加、删除和修改非常简单,添加或修改只需要编写一条赋值语句,例如:
1dict['x'] = "value"
如果索引x不在字典dict的key列表中,字典dict将自动添加一条新的映射(x:value)
;如果索引存在字典dict的key列表中,字典dict将直接修改索引x对应的value值
字典的移除
字典与列表不同,字典没有remove()操作。字典元素的删除可以调用del()
实现,del()
属于内建函数,直接调用即可。列表可以调用pop()
弹出列表中一个函数,字典也有pop(),该方法的声明与列表的pop()有些不同。pop()
必须指点参数才能删除对应的值。如果需要清除字典的所有内容,可以掉用字典的clear()
。
1dict = {"a":"apple","b":"banana","g":"grape","o":"orange"}
2dict['w'] = 'watermelon'
3del(dict['a']) #删除字典中键为'a'的元素
4dict['g'] = 'grapefruit' #修改出字典中键为'g'的元素
5print(dict.pop('b')) #弹出字典中键为'b'的元素
6print(dict)
7dict.clear() #清除字典中的所用元素
8print(dict)
字典的遍历
字典除了可以采用for...in...
之外,还可以采用items()
实现字典的遍历操作,items()返回一个有若干元组组成的列表。例如:
1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2print(dict.items())
输出结果为:
1[('a':'apple'),('b':banana'),('g':'grape'),('o':'orange')]
可见,items()
把字典中每一对key和value组成一个元组,并把这些元组存放在列表中返回。
1. for遍历
1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2for i in dict :
3 print(’dict[%s] =' %i,dict[i])
2. items()遍历
1dict = {'a':'apple','b':banana','g':'grape','o':'orange'}
2for (k,v) in dict.items() :
3 print(’dict[%s] =' %k,v)
常用方法
方法 | 解释 |
---|---|
keys() | 返回key列表 |
values() | 返回value列表 |
get() | 获取某一键的值 |
例子:
1dict = {"a":"apple","b":banana","g":"grape","o":"orange"}
2#输出key的列表
3print(dict.keys())
4#输出value的列表
5print(dict.values)
6#使用get获取键为"c"的值,若不存在就返回"None"
7print(dict.get("c","None"))
输出结果:
1[ ]
2[ ]
3None
字典的排序、复制
在列表的排序可以使用sorted()
实现,字典的排序同样可以使用该函数
1dict = {"a":"apple","b":"banana","g":"grape","o":"orange"}
2print(sorted(dict.items()))
输出结果变为列表:
1[("a", "apple"), ("b", "banana"), ("g", "grape"), ("o", "orange")]
copy()
实现了字典的浅拷贝操作,当然有浅拷贝就有深拷贝。
举个栗子来说明一下,深浅拷贝的区别:
例如,字典B浅拷贝字典A的数据,如果字典B得数据发生添加、删除或者修改操作,字典A的数据也将发生变化;相反,如果字典B深拷贝字典A的数据,字典B的数据即使发生变化,也不会影响到字典A
深浅拷贝可以使用到python中的任何对象,不只是限于字典。在python中可以使用copy()模块来实现对象的深拷贝和浅拷贝,deepcopy()
用于深拷贝,copy()
用于实现浅拷贝操作。
1import copy
2dict = {'a':'apple','b':'banana','g':'grape','o':'orange'}
3dict2 = copy.deepcopy(dict) #深拷贝
4dict2 = copy.copy(dict) #浅拷贝
总结
至此,「python基础—字典」已经分享完了,整个python中常见的数据结构类型也就完结了,希望大家都已经掌握了。希望大家看过之后,都能自己动手实践。毕竟只有自己动手才能发现自己的问题所在。
推荐阅读 |
扫码关注
点赞是一种态度