每个键都用冒号(:)分隔,其值用逗号分隔,整个事物用大括号括起来。 没有任何项目的空字典仅用两个大括号编写,如下所示:{}

键在字典中是唯一的,而值可能不是。 字典的值可以是任何类型,但键必须是不可变的数据类型,例如字符串,数字或元组。

访问字典

要访问字典元素,可以使用熟悉的方括号和键来获取它的值。 以下是一个简单的例子 -

#!/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()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4

radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值

5

key in dict
如果键在字典dict里返回true,否则返回false

6

radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组

7

radiansdict.keys()
以列表返回一个字典所有的键

8

radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9

radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里

10

radiansdict.values()
以列表返回字典中的所有值

11

pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。