机器学习:基于OpenCV和Python的智能图像处理
上QQ阅读APP看书,第一时间看更新

2.6 字典

本节将介绍能够将相关信息关联起来的Python字典,主要针对如何访问和修改字典中的信息进行介绍。鉴于字典可存储的信息量几乎不受限制,因此下面会演示如何遍历字典中的数据。

通过字典能够更准确地为各种真实物体建模。例如,可以创建一个表示人的字典,然后想在其中存储多少信息就存储多少信息,如姓名、年龄、地址、职业和要描述的其他方面。

2.6.1 字典的创建

字典就是用大括号括起来的“关键字:值”对的集合体,每一个“关键字:值”对被称为字典的一个元素。

创建字典的一般格式为:

    字典名={[关键字1:1[,关键字2:2, ……,关键字n:n]]}

其中,关键字与值之间用“:”分隔,元素与元素之间用逗号分隔。字典中关键字必须是唯一的,值可以不唯一。字典的元素可以是列表、元组和字典。

    >>>d1 = {'name':{ 'first': 'Li', 'last': 'Hua'}, 'age':18}
    >>>d1
    {'name':{ 'first': 'Li', 'last': 'Hua'}, 'age':18}
    >>>d2 = {'name': 'LiHua', 'score':[80,65,98]}
    >>>d2
    {'name': 'LiHua', 'score':[80,65,98]}
    >>>d3={'name': 'LiHua', 'score':(80,65,98)}
    >>>d3
    {'name': 'LiHua', 'score':(80,65,98)}

当“关键字:值”对都省略时会创建一个空的字典,如下所示。

    >>>d4 = {}
    >>>d5={'name': 'LiHua', 'age': '18'}
    >>>d4, d5
    {{}, {'name': 'LiHua', 'age': '18'}}

另外,在Python中还有一种创建字典的方法,即dict函数法。

    >>>d6=dict()                                          #使用dict创建一个空的字典
    >>>d6
    {}
    >>>d7=dict((['LiHua',100], ['LiMing',95]))            #使用dict和元组创建一个字典
    >>>d7
    {'LiHua':100, 'LiMing': 95}
    >>>d8=([['LiHua',100], ['LiMing',95]])                #使用dict和列表创建一个字典
    >>>d8
    {'LiHua':100, 'LiMing': 95}

2.6.2 字典的常规操作

在Python中定义了很多字典的操作方法,下面介绍几个比较重要方法,更多的字典操作可以上网查询。

1.访问

在Python中可以通过关键字进行访问,一般格式为:

    字典[关键字]

例如:

    >>>dict_1={'name': 'LiHua', 'score':95}          #以字典中的关键字为索引
    >>>dict_1['score']
    95

2.更新

在Python中更新字典的格式一般为:

    字典名[关键字]=

如果在字典中已经存在该关键字,则修改它;如果不存在,则向字典中添加一个这样的新元素。

    >>>dict_2={'name': 'LiHua', 'score':95}             #创建一个字典
    >>>dict_2['score'] = 85                             #字典中已存在’score’关键字,修改
    >>>dict_2
    {'name': 'LiHua', 'score':85}
    >>>dict_2['age']=18#字典中不存在’age’关键字,添加
    >>>dict_2
    {'name': 'LiHua', 'score':85, 'age':18}

3.删除

在Python中删除字典有很多种方法,这里介绍del和clear方法。del方法的一般格式如下:

    del字典名[关键字]#删除关键字对应的元素
    del字典名                                                       #删除整个字典

字典的删除如下所示。

    >>>dict_3={'name': 'LiHua', 'score':95, 'age':18}             #创建一个字典
    >>>del dict_3['score']                                        #删除score关键字
    >>>dict_3
    {'name': 'LiHua', 'age':18}
    >>>dict_3.clear()                                             #清除字典内容
    >>>dict_3
    {}

4.其他操作方法

在Python中,字典实际上也是对象,因此,Python定义了很多比较常用的字典操作方法,具体如表2-3所示。

表2-3 字典常用方法

2.6.3 字典的遍历

对字典进行遍历一般会使用for循环,但建议在访问之前使用in或not in判断字典的关键字是否存在。字典的遍历操作如下所示。

    >>>dict_4={'name': 'LiHua', 'score':95 }                    #创建一个字典
    >>>forkeyindict_4.keys():#遍历字典的关键字
    >>>print(key, dict_4[key])
    name LiHua
    score 95
    >>>for value in dict_4.values(): #遍历字典的值
    >>>print(value)
    LiHua
    95
    >>>for item in dict_4.items():   #遍历字典的“关键字:值”对
    >>>print(ite)
    ('name', 'LiHua')
    ('score', 95)