1. 什么是字典
python内置的数据结构之一,与列表一样是一个可变序列
以键值对的方式存储数据,字典是一个无序的序列
字典的实现原理与查字典相似,查字典是先根据部首或拼音查找相应的页码,python中的字典是根据key查找value所在的位置
2. 字典的创建
(1)最常用的方式:使用花括号
scores={
'张三':100,'李四':98,'王五':45}
(2) 使用内置函数dict()
dict(name='jack',age=20)
3. 字典中元素的获取
(1)[ ]取值与使用get()取值的区别:
[]如果字典中不存在指定的key,抛出KeyErrot异常,get()方法取值,如果字典中不存在指定的key,并不抛出KeyError而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回.
(2) [ ]取值
scores={
'张三':100,'李四':98,'王五':45}
print(scores['李四']) #将会输出98
print(scores['陈六']) #将会出现KeyError,因为陈六不在scores字典中
(3) get()取值
scores={
'张三':100,'李四':98,'王五':45}
print(scores.get('张三')) #将会输出100
print(scores.get('陈六')) #将会输出None
4.key的判断
scores={
'张三':100,'李四':98,'王五':45}
print('张三' in scores) #输出内容为True
print('张三' not in scores) #输出内容为False
5.字典元素的删除
scores={
'张三':100,'李四':98,'王五':45}
del scores['张三'] #删除指定的key-value对
scores.clear() #清空字典的元素
6.字典元素的新增
scores={
'张三':100,'李四':98,'王五':45}
scores['陈六']=98 #新增元素
7.字典元素的修改
scores={
'张三':100,'李四':98,'王五':45}
scores['张三']=20 #修改元素
8.获取字典视图的三种方法
(1).keys()获取字典中的所有key
scores={
'张三':100,'李四':98,'王五':45}
keys=scores.keys() #获取字典中的所有key
(2).values()获取字典中所有的value
scores={
'张三':100,'李四':98,'王五':45}
values=scores.values() #获取字典中的所有value
(3).items()获取字典中所有key-value对
scores={
'张三':100,'李四':98,'王五':45}
items=scores.items() #获取字典中的所有key-value对
9.字典元素的遍历
scores={
'张三':100,'李四':98,'王五':45}
for i in scores:
print(i,scores[i]) #输出第一个i为字典中的key,scores[i]为字典中key对应的value输出key的方式不止这一种,也可用get()
10.字典的特点
(1).字典中的所有元素都是一个key-value对,key不允许重复,value可以重复
d={
'name':'张三','name':'李四'} #因为key不允许重复,所以字典中只有{'name':'李四'}
s={
'name':'张三','nikename':'张三'} #value可以重复,所以字典中有{'name':'张三','nikename':'张三'}
(2).字典中的元素是无序的
(3).字典中的key必须是不可变对象
(4).字典也可以根据需要动态的伸缩
(5).字典会浪费较大的内存,是一种使用空间换时间的数据结构