Python 3.x 字典(Dictionary)详解
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在大括号{}中 ,格式如下所示:
dict = {
key1 : value1, key2 : value2 }
注:
关于字典的内置函数可以通过python中的help(dict)
命令进行查询。
一、创建字典
>>>dict1 = {
'001' : 'smile', '002' : 'yanxiao'}
也可以嵌套的创建字典:
>>>dict2 = {
'001' : {
'name' : 'smile', 'sex' : '女'},
'002' : {
'name' : 'yanxiao', 'sex' : '男'}}
注意:
字典得每一个键和键值之间必须用冒号:
隔开,每一对要用逗号,
隔开,整体放在大括号{}
中;
键必须独一无二,而值则不必,值可以取任何数据类型,但必须是实体,如字符串,数。
二、访问字典内容
这部分内容我个人认为是关于字典的操作里面最为重要的一部分,后续爬虫会用到字典的这部分操作。
1.简单访问
把相应的键放入方括号里,进实例:
>>>dict1 = {
'001' : 'smile', '002' : 'yanxiao'}
>>>print("学号为001的学生姓名是:" , dict1['001'])
#输出结果:学号为001的学生姓名是:smile
>>>dict2 = {
'001' : {
'name' : 'smile', 'sex' : '女'},
'002' : {
'name' : 'yanxiao', 'sex' : '男'}}
>>>print("学号为001的学生性别是:" , dict2['001']['sex'])
#输出结果:学号为001的学生性别是:女
如果用字典中没有的键访问数据会出现如下所示错误:
>>>dict1 = {
'001' : 'smile', '002' : 'yanxiao'}
>>>print(dict1['003'])
#输出结果:
#Traceback (most recent call last):
#File "<stdin>", line 1, in <module>
#KeyError: '003'
2.遍历操作
利用循环for
对字典进行遍历操作:
①for k in dict
遍历字典中全部的键
话不多说,进实例:
>>>dict1 = {
'001' : 'smile', '002' : 'yanxiao'}
>>>for k in dict1:
>>> print(k)
#输出结果:001
# 002
>>>dict2 = {
'001' : {
'name' : 'smile', 'sex' : '女'},
'002' : {
'name' : 'yanxiao', 'sex' : '男'}}
>>>for k in dict2:
>>> print(k)
#输出结果:001
# 002
注意:这里对dict2
的操作结果依然是001 002
,而不是001 002 name...
,因为{'name' : 'smile', 'sex' : '女'}
与{'name' : 'yanxiao', 'sex' : '男'}
是dict2
中的001 002
这两个键的键值。
那么,要访问name sex
这两个键则需要进参照③中的for k,v in dict.items()
,如下实例:
>>>dict2 = {
'001' : {
'name' : 'smile', 'sex' : '女'},
'002' : {
'name' : 'yanxiao', 'sex' : '男'}}
>>>for k,v in dict2.items():
>>> for k in v:
>>> print(k)
#输出结果:name
# sex
# name
# sex
②for v in dict.values()
遍历字典中全部的键值
话不多说,我们接着进实例:
>>>dict1 = {
'001' : 'smile', '002' : 'yanxiao'}
>>>for v in dict1.values():
>>> print(v)
#输出结果:smile
# yanxiao
>>>dict2 = {
'001' : {