每个键都用冒号(:)分隔,其值用逗号分隔,整个事物用大括号括起来。 没有任何项目的空字典仅用两个大括号编写,如下所示:{}
键在字典中是唯一的,而值可能不是。 字典的值可以是任何类型,但键必须是不可变的数据类型,例如字符串,数字或元组。
访问字典
要访问字典元素,可以使用熟悉的方括号和键来获取它的值。 以下是一个简单的例子 -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
当上面的代码被执行时,它会产生以下结果 -
dict['Name']: Zara
dict['Age']: 7
如果我们尝试使用不属于字典一部分的键访问数据项,我们会得到如下错误 -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Alice']: ", dict['Alice']
当上面的代码被执行时,它会产生以下结果 -
dict['Zara']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
更新字典
您可以通过添加新条目或键值对,修改现有条目或删除现有条目来更新字典,如下面的简单示例所示。
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
当上面的代码被执行时,它会产生以下结果 -
dict['Age']: 8
dict['School']: DPS School
删除字典元素
您可以删除单个字典元素,也可以清除字典的全部内容。 您也可以在一个操作中删除整个字典。
要显式删除整个字典,只需使用del语句。 以下是一个简单的例子 -
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name'] # remove entry with key 'Name'
dict.clear() # remove all entries in dict
del dict # delete entire dictionary
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
这会产生以下结果。
因为del字典后字典不再存在,所以引发了一个异常。
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
注 − del()方法在后面的章节中讨论。
字典的键值属性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
关于字典键有两点要记住 -<
(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
#!/usr/bin/python3
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])
当上面的代码被执行时,它会产生以下结果 -
dict['Name']: Manni
(2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
#!/usr/bin/python3
dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
当上面的代码被执行时,它会产生以下结果 -
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7}
TypeError: list objects are unhashable
内置的字典功能和方法
序号 | 函数及描述 |
---|---|
1 | len(dict) |
2 | str(dict) |
3 | type(variable) |
Python字典包含了以下内置方法:
序号 | 函数及描述 |
---|---|
1 | radiansdict.clear() |
2 | radiansdict.copy() |
3 | radiansdict.fromkeys() |
4 | radiansdict.get(key, default=None) |
5 | key in dict |
6 | radiansdict.items() |
7 | radiansdict.keys() |
8 | radiansdict.setdefault(key, default=None) |
9 | radiansdict.update(dict2) |
10 | radiansdict.values() |
11 | pop(key[,default]) |
12 | popitem() |