本文介绍本系列教程最后一个数据结构——字典
在现实生活中,查英语字典的时候,我们通常根据单词来查找意思。而python中的字典也是类似的,根据特定的 “键”(单词)来查找 “值”(意思)。
字典的基本使用
下面以电话簿为例,我们的电话簿记录的是电话号码。当要查找电话号码时,我们根据人名来查找其电话号码,所以人名就是字典的键,电话号码就是字典的值。假设有下面这样的人名和电话号码的电话簿:
人名=>电话
Aganzo=>1230
Jack=>0221
Lee=>1354
Emilie=>2479
创建字典
现在我们来创建一个字典来表示这个电话簿:
>>> phonebook={
'Aganzo':'1230', 'Jack':'0221', 'Lee':'1354', 'Emilie':'2479'}
>>> phonebook
{
'Aganzo': '1230', 'Jack': '0221', 'Lee': '1354', 'Emilie': '2479'}
>>>
从上面可以看出,创建字典的基本格式为{ 键1:值1, 键2:值2, 键3:值3 ...}
。除了这种方法,我们还可以通过dict函数传递关键字参数来创建字典,像下面这样:
>>> phonebook = dict(Aganzo='1230', Jack='0221', Lee='1354', Emilie='2479') # 关键字参数就是字典的键,参数值就是字典的值
>>> phonebook
{
'Aganzo': '1230', 'Jack': '0221', 'Lee': '1354', 'Emilie': '2479'}
>>>
我们常用第一种方式创建字典,第二种方式比较少用,而且第二种方式有一个缺点:因为关键字参数会变为字典的键,所以键必须符合参数的命名规则(字母或下划线_
开头,其后是数字、字母或下划线)。
补充:创建空字典有两种方法,一种是直接使用{}
;另一种是调用dict函数时,参数留空,即dict()
;像键:值
这样的东西叫做字典的 “项”。
字典基本操作
字典的基本操作有:增、删、改、查。
先来说“查”:我们可以通过名字来查找电话簿中的电话号码,在字典中类似这样,通过“键”来查“值”,基本格式为字典[键]
:
>>> phonebook['Aganzo']
'1230'
>>> phonebook['Jack']
'0221'
>>> phonebook['Lily']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Lily'
>>>
从上面的代码可以看出,我们的“电话簿”中不存在Lily的电话号码,可知,当字典中不存在要查的元素时,python会提示报错。我们可以在查之前确认字典中是否有对应的项,使用成员运算符in
:
>>> 'Lily' in phonebook # 不存在
False
>>> 'Jack' in phonebook # 存在
True
>>>
或者查看“电话簿”中所有人的电话号码:
>>> for key in phonebook:
.