5.1 字典创建与使用
5.1.1 字典的创建与删除
字典是由多个键及其对应的值构成的对组成的(一般把键/值对称为项)。字典里的每个键/值(key/value)对用冒号(:)分割,每个项之间用逗号(,)分割,整个字典包括在花括号({})中。空字典(不包括任何项)由两个大括号组成,如{}。需要注意的是,在创建字典时,不允许同一个键出现两次,如果在创建时同一个键被赋值两次,则系统只会将后面出现的值赋给这个键并进行记录,然后将前面的值忽略掉。键必须是不可变的,可以用数字、字符串或者元组充当,但是不可以用列表充当键。字典的创建格式如下:
l d={key1:value1,key2:value2}
还可以通过dict()函数利用其他映射(比如其他序列)或者键/值序列对来建立字典。通过dict()函数创建字典的指令格式示例如下:
>>> Kee = [('name','kee'),('sex','girl')]
>>> student = dict(Kee)
也可以利用dict()函数通过关键字创建字典,此种创建方法的语法示例如下:
>>> Kee = dict(name = 'kee',sex = 'girl')
如果想要对字典中的项进行删除,可以利用del命令,del命令不仅可以删除字典中的某个项,还可以删除整个字典,当删除字典之后就不能对字典进行访问了,此时访问系统就会报变量没有定义的错误。此命令的语法格式如下:
>>> Kee = {'awei': '1001', 'xiaohao': '1002', 'dashi': '1003', 'dabo': '1004'}
>>> del Kee['dabo'] #删除Kee字典中的'dabo'键
>>> del Kee #删除字典Kee
5.1.2 访问元素值
这里介绍使用下标运算符访问元素值的用法。字典中的每个元素表示一种映射关系或对应关系,根据提供的“键”作为下标就可以访问对应的“值”。如果字典中不存在这个“键”则会抛出异常。此种方法的命令格式示例如下:
>>> Kee = {'awei': '1001', 'xiaohao': '1002', 'dashi': '1003', 'dabo': '1004'}
>>> Kee['awei'] #指定键存在,返回对应的值
'1001'
>>> Kee['awe'] #指定键不存在,抛出异常
Traceback (most recent call last):
File”<pyshell#26>”,line 1,in <module>
Kee['aew']
KeyError:'awe'
>>> assert'awe' in Kee,'Key”awe” not in dict
Traceback (most recent call last):
File”<pyshell#44>”,line 1,in <module>
assert'awe' in Kee,'Key”awe” not in dict
AssertionError:Key “awe” not in dict
为了避免程序运行时引发异常而导致程序崩溃,在使用下标的方式进行访问字典元素时,最好能配合条件判断或者异常处理,例如:
>>> Kee = {'awei': '1001', 'xiaohao': '1002', 'dashi': '1003', 'dabo': '1004'}
>>> if'awe' in Kee
print(Kee['awe'])
>>> else:
print('Not Exists')
Not Exists
>>> try: #使用异常处理结构
print('Kee['awe']')
>>> except:
print('Not Exists')
Not Exists
5.1.3 添加元素、修改元素值
修改字典,向字典中添加新内容的方法是增加新键/值对,修改已有键/值对。可以利用赋值符号等号(=)来对字典进行添加元素,修改元素值得操作。示例代码如下:
>>> student = {'awei':'1001','xiaohao':'1002','dashi':'1003'}
>>> student['dashi']='1005'
>>> print('dashi的学号是: %(dashi)s' % student)
dashi的学号是:1005
>>> student['dabo']='1006'
>>> print('dabo的学号是: %(dabo)s' % student)
dabo的学号是:1006
5.2 字典方法
5.2.1 get()
get()方法用来返回指定键对应的值,这个方法允许指定键不存在时返回特定的“值”。它的使用方法示例如下:
>>> student = {'awei':'1001','xiaohao':'1002','dashi':'1003'}
>>> student.get('awei')
'1001'
>>> student.get('awe','Not Exists')
Not Exists
5.2.2 items()、keys()、values()
在字典中,itmes()函数的功能是以列表返回可遍历的(键,值)元组数组。它的使用方式示例如下:
>>> student = {'awei':'1001','xiaohao':'1002','dashi':'1003'}
>>> print(“字典值为:%s”%student.items())
字典值为:[('awei','1001'),('xiaohao','1002'),('dashi','1003')]
>>> for key,values in student.items(): #遍历字典
print(key,values)
awei 1001
xiaohao 1002
dashi 1003
keys()函数的功能是以列表的形式返回一个字典的所有键。它的指令格式示例如下:
>>> Kee = {'name':'kim','age':'21'}
>>> print(“Keys : %s” % Kee.keys())
Keys : ['age','name']
values()函数的功能是以列表的形式返回字典中的所有值。它的指令格式示例如下:
>>> Kee = {'name':'kim','age':'21'}
>>> print(“Value : %s” % Kee.keys())
Value : ['21','kim']
5.2.3 pop()、popitem()
如果想要对字典中的键进行删除操作,除了借助del命令进行操作,还可以利用字典对象中的pop()方法和popitem()方法弹出并删除字典内指定的键,这两种的使用方式示例如下:
>>> Kee = {'awei': '1001', 'xiaohao': '1002', 'dashi': '1003', 'dabo': '1004'}
>>> Kee.popitem() #弹出一个元素,对空字典会抛出异常
('awei','1001')
>>> Kee.pop('xiaohao') #弹出指定键对应的元素
'1002'
>>> print(Kee)
{'dashi': '1003', 'dabo': '1004'}