Python 3 – 字典

Python 3 – 字典

每个键被冒号(:)与其值分隔,项之间用逗号分隔,整个内容被括在花括号中。不带任何项的空字典用两个花括号表示,如下:{}。

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

字典访问值

要访问字典元素,可以使用熟悉的方括号与键一起获取其值。以下是一个简单的示例:

#!/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; # 更新现有条目
dict['School'] = "DPS School" # 添加新条目

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'] # 删除键为'Name'的条目
dict.clear()     # 移除字典中的所有条目
del dict         # 删除整个字典

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

这将产生以下结果。

由于 del dict 后,字典不存在了,因此会引发异常。

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 对象,可以是标准对象或用户定义的对象。但是,对于键则不是这样。

有两个关于字典键的重要要点:

(a) 不允许一个键有多个值。这意味着重复的键不允许存在。当在赋值的过程中出现重复键时,最后一个赋值将生效。例如:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

当上述代码被执行时,它将产生以下结果:

dict['Name']:  Manni

(b) 键必须是不可变的。这意味着您可以将字符串、数字或元组用作字典键,但不能像 [‘key’] 这样使用。以下是一个简单的示例:

#!/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

内置字典函数和方法

Python 包括以下字典函数:

Sr.No. 函数&描述
1 cmp(dict1, dict2)在 Python 3 中不再可用。
2 len(dict)返回字典中的项数。
3 str(dict)输出字典的可打印的字符串表示。
4 type(variable)返回传递变量的类型,如果传递的是字典,则返回字典类型。

Python 包括以下字典方法:

序号 方法和描述
1 dict.clear() 删除字典 dict 中的所有元素
2 dict.copy() 返回字典 dict 的浅拷贝
3 dict.fromkeys() 使用 seq 中的键创建一个新字典,并将值设置为 value
4 dict.get(key, default=None) 对于键 key ,如果在字典中,则返回其值;否则返回默认值 default
5 dict.has_key(key) 已删除,请使用 in 运算符代替。
6 dict.items() 返回字典 dict 中所有的键值对元组
7 dict.keys() 返回字典 dict 中所有的键
8 dict.setdefault(key, default = None) 类似于 get(),但是如果 key 不在字典中,将返回默认值, default 并将其添加到字典中。
9 dict.update(dict2) 将字典 dict2 的键值对添加到字典 dict
10 dict.values() 返回字典 dict 中所有的值

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程