字典类型
python中的字典可以通过大括号{}建立,建立模式如下:
{<键1>:<值1>,<键2>:<值2>,…,<键n>:<值n>}。
我们之前讲解集合类型时说过,集合也可以通过大括号和赋值语句的形式建立,因此字典也具有和集合类似的性质:键值对之间无序且不能重复,简单来说可以把字典类型看成是元素是键值对的集合。
一般来说字典中的键值对访问模式如下:采用中括号进行访问
<值>=<字典变量>[<键>]
如果想要改变键所对应的值则也要使用中括号进行访问
#创建字典dic
dic={"10001":"小赵","10002":"小王","10003":"小李"}
#访问dic中键为10002字符串所对应的值,用[]括起来
print("学号为10002的学生为:{}".format(dic["10002"]))
#更改字典中键为10002对应的值为小张
dic["10002"]='小张'
print("学号为10002的学生为:{}".format(dic["10002"]))
- 1
- 2
- 3
- 4
- 5
- 6
结果为:
字典中的键和值可以是任意数据类型,包括程序自定义的类型。
字典类型的操作
使用大括号可以创建字典并指定初始值,如果直接使用大括号{}会默认生成一个空字典,这里要和集合加以区分,生成空集合要是有set()函数。
接下来我们来说一下字典类型的函数和方法:
❶d.keys():返回字典中所有的键信息
❷d.values():返回字典中的所有值信息
❸d.items():返回所有的键值对信息
❹d.get(key,default):若键存在则返回相应值,否则返回默认值
❺d.pop(key,default):若值存在则返回相应值,同时删除键值对,否则返回默认值
❻d.popitem():随机从字典取出一个键值对,以元组形式(key,value)返回
❼d.clear():删除所有的键值对
❽del d[key]:删除字典中某一个键值对
❾key in d:如果键在字典中返回True,否则返回False
上述方法如果希望keys(),values(),items()方法返回列表类型,可以采用list()函数将返回值转换成列表。
#创建空字典:
dic={}
print("dic的类型是:{},其内容为:".format(type(dic),dic))
d={"1001":"小明","1002":"小张","1003":"小李"}
print("键信息为:{}".format(d.keys()))
print("值信息为:{}".format(d.values()))
print("d中的所有键值对为:{}".format(d.items()))
#由于1001为d中的一个键,返回相应值
print("1001是d中的一个键吗?是的话返回对应值:{}".format(d.get("1001","无")))
#由于1004不是d中的一个键,返回设定值"不是"
print("1004是d中的一个键吗?是的话返回对应值:{}".format(d.get("1004","无")))
print("1002是d中的一个键吗?是的话返回对应值并删除它:{}".format(d.pop("1002","不是")))
print("删除后的d为:{}".format(d.items()))
print("从d中随机取出一个键值对:{}".format(d.popitem()))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
结果为:
与其他组合类型一样,字典可以通过for—in语句对其元素进行遍历循环:
for 变量名 in 字典名:
语句块
(由于缩进语句块前面应该有4个空格的,不知道为啥我打出来以后就不显示了,大家知道就行了(●°u°●) 」,缩进是强制的语法要求)
d={1001:"小z",1002:"小w",1003:"小h"}
for key in d:
print("键是:{},对应值为:{}".format(key,d.get(key)))
- 1
- 2
结果为:
对于字典类型大家要好好掌握字典类型的方法,字典类型在一些爬取数据的代码中很常用的哟⑅❛ ᵕ ❛⑅