目录
前言:
字典是什么
字典的特点
1.字典的创建
(1)直接创建{}
(2)dict() 函数创建
2.字典的查询
(1)get()函数
(2)获取字典一组内容
3.字典键值对的添加
(1)直接添加
(2)setdefault() 函数
4.字典的修改
update() 函数
5.字典键对值的删除
(1)pop()函数
(2)popitem() 函数
(3)clear()清空字典
(4)del 删除方法
前言:
前面在Python的学习中,我们已经讲过了关于Python中的序列类型有有序序列和无序序列Python学习------起步3(序列与数据类型转换)_守约斯维奇的博客-CSDN博客,之前讲了有序序列中的列表,元组和字符串等相关操作;而今天我会讲解无序序列中的字典相关操作。
字典是什么
之前学习有序序列都知道,有序序列的特点是有指定的位置,可以去通过下标去表示一个元素。而对于无序序列是没有下标的,那我们是通过什么去处理无序序列呢?
就以字典而言,字典最大的特点是有一个键(key),我们可以去通过这个键来访问字典里面的内容,其实类似于有序序列的下标。字典是一个键对应一个值的,是一种映射关系,而在数学上表现为函数,一个自变量对应一个因变量,所以我们可以去通过这个‘自变量’来对‘因变量进行处理’。字典(dictionary)在Python中是除了列表以外最灵活的数据类型了。
实质上就是一个key对应一个value,通过key去访问value
字典的特点
1.字典是无序的(无序序列,以键值对的方式去储存数据)
2.字典是可变的(可以进行直接修改)
3.字典中的键(key)与数据(value)是一一对应的
1.字典的创建
字典的表示:
字典名 = {
键:数据
}
比如 d = {'数学':100,'语文':100,'英语':100}
如果是创建一个空的字段的话就直接 d = {}
作用:用键值对的方式对数据进行存储,有对数据进行一个解释说明,有一个比较好的可读性
注意事项:创建字典的时候,键 如果出现了重复的话,那么重复键的内容就会把上一个的给覆盖掉
(1)直接创建{}
示例1:
d = {'数学':100,'语文':100,'英语':100,False:15}
print(d,type(d))
#输出结果:{'数学': 100, '语文': 100, '英语': 100, False: 15} <class 'dict'>
示例2:
#创建一个空字典
d={}
print(d,type(d))
#输出结果:{} <class 'dict'>
#输出字典中的单个元素
dd={'name':'Jack','age':19,'gender':'male'}
print(dd['age'],type(dd['age']))
#输出结果:19 <class 'int'>
示例3:
# 当字典中的键重复的时候,原来的值将会被覆盖
dd={'name':'Jack','age':19,'gender':'male','age':20}
print(dd['age'])
#输出结果:20
(2)dict() 函数创建
示例:
#dict()函数直接创建
student = dict(name='jack', age=22)
print(student,type(student))
#输出结果:{'name': 'jack', 'age': 22} <class 'dict'>
这种写法是通过函数来实现的,同样键与数据也是一一对应的
注意:字典的 键 是唯一的不可变的,不可修改的,虽然说键可以用字符串,布尔类型,元组类型,或者整等等,这些类型都是不可变的,而列表和字典还有接下来要讲到的集合都是具有可变性,所以不可以作为字典的 键!
2.字典的查询
(1)get()函数
格式:
字典名.get(key)
返回:如果存在就返回这个数据,如果不存在就返回None
d={'name':'Jack','age':19,'home':'广东'}
print(d.get('home'))
print(d.get('phone'))
#输出结果:
#广东
#None
(2)获取字典一组内容
格式:
字典名.keys() #获取字典所有的键
字典名.values() #获取字典所有的值
字典名.items() #获取字典所有的键值对
示例:
d={'name':'Jack','age':19,'home':'广东'}
print(d.keys(),type(d.keys()))
print(d.values(),type(d.values()))
print(d.items(),type(d.items()))
这个是一个很普通的查询方法,了解一下就行了
3.字典键值对的添加
(1)直接添加
格式:
字典名[key] = 值
d={'name':'Jack','age':19,'home':'广东'}
print(d)
d['phone']='137********'
print(d)
这种方式也是最常见的方式,直接添加就行了,没有多余的操作
(2)setdefault() 函数
格式:
字典名.setdefault(键,值)
注意事项:
1.当值没有传入进去,会默认为None
2.当键存在的时候,不会对其对应的值进行修
示例1:
d={'name':'小明'}
d.setdefault('语文',88)
print(d)
d.setdefault('数学',99)
d.setdefault('英语',98)
print(d)
示例2:
d={'name':'小明','语文':88,'数学':99,'英语0':98}
d.setdefault('地理')
print(d)
d.setdefault('语文',100)
print(d)
这里可以看到,如果没有去设置value的值的时候,系统是默认为None;而且如果再次添加已有的键的时候,原来键对应的值value不会被修改
4.字典的修改
update() 函数
格式:
字典名.update({键:值,键1:值1,键2:值2……})
作用:即可以增加也可以修改 , 并且一次可以增加多个值
#修改功能
d={'name':'小明','语文':88,'数学':99,'英语':98}
d.update({'语文':100})
print(d)
#添加单个
d.update({'地理':96})
print(d)
#添加多个
d.update({'物理':60,'化学':77})
print(d)
相较于setdefault() 函数,我个人还是比较建议用updata() 函数去实现数据的添加,同时这个函数还具备修改功能。这个函数整体还是偏向于修改功能的。
5.字典键对值的删除
(1)pop()函数
这个函数在之前学习列表的时候我是讲过的,这个函数的使用范围还是比较广的,也可以用于字典键对值的删除 链接:Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)_守约斯维奇的博客-CSDN博客
格式:
字典名.pop(key)
作用:指定键删除,key和value都删除
d={'name':'小明','语文':88,'数学':99,'英语':98}
d.pop('英语')
print(d)
#输出结果:{'name': '小明', '语文': 88, '数学': 99}
(2)popitem() 函数
格式:
字典名.popitem()
作用:删除掉字典最后一个键值对
d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
d.popitem()
print(d)
#输出结果:{'name': '小明', '语文': 88, '数学': 99, '英语': 98}
可见最后一个物理:60 被删除了
(3)clear()清空字典
格式:
字典名.clear()
作用:把字典里面所有键值对全部删除
d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
print(d)
d.clear()
print(d)
(4)del 删除方法
这个也是之前在列表的删除讲过,这个方式也是很经常用到的,不仅仅可以去删除序列里面的某个数据,而且还可以把整个序列变量给删掉,所以使用的时候要看清楚删除的对象是什么
格式:
del 字典名[key]
#删除字典中的一个键值对
d={'name':'小明','语文':88,'数学':99,'英语':98,'物理':60}
del d['数学']
print(d)
#输出结果:{'name': '小明', '语文': 88, '英语': 98, '物理': 60}
#删除整个字典
del d
print(d)
#输出结果会报错的,因为字典已经被删除了,不存在了,自然就不可能打印出来
OK,这一期就到这里了,下一期讲无序序列中的集合,thanks~~~