Python 3 – 字典 values() 方法
在 Python 中,字典(dictionary)是一种可变的数据结构。字典使用键(key)和值(value)来存储和访问元素,它们之间是一一对应关系。
Python 内置了许多操作字典的方法,其中一个值得介绍的方法是 values() 方法。在本篇文章中,我们将见识到 values() 方法的用法和示例。
语法
values() 方法返回一个视图(view)对象,这个视图对象包含了字典中所有的值。该方法的语法如下:
dict.values()
参数说明:
- 无参数
返回值说明:
- 返回一个视图(view)对象
示例
我们使用下面这个简单的字典表示一些学生的名字及其对应的成绩:
student_scores = {'John': 90, 'Tom': 70, 'Lucy': 80}
我们来看看如何使用 values() 方法来获取字典中的所有值:
values_view = student_scores.values()
print("视图对象: ", values_view)
输出结果如下:
视图对象: dict_values([90, 70, 80])
如上所示,values() 方法返回一个视图对象,类似于列表(list)形式的包含了所有字典的值。通过遍历视图对象,我们可以访问到字典中所有的值。下面是一个遍历视图对象的示例代码:
for score in values_view:
print(score)
输出结果:
90
70
80
通过 values() 方法,我们可以方便地获取字典中所有的值,然后进行自己的操作,比如计算平均值、最大值、最小值等。
特性
下面我们详细介绍 values() 方法的几个特性。
视图对象
values() 方法返回的是一个视图(view)对象,而不是一个列表或者元组类型的对象。这个视图对象具有一些列表(list)类型的特征,例如可以进行遍历、索引、切片操作,但是不支持更改或者删除操作。
示例代码:
student_scores = {'John': 90, 'Tom': 70, 'Lucy': 80}
# 通过索引获取第一个元素
first_value = list(student_scores.values())[0]
print("第一个元素的值是: ", first_value)
# 切片
values_slice = list(student_scores.values())[1:3]
print("切片操作的结果是: ", values_slice)
输出结果:
第一个元素的值是: 90
切片操作的结果是: [70, 80]
需要注意的是,由于视图对象并不是一个列表类型,所以它没有列表的 len() 方法,同时也不支持更改或者删除操作。如果我们尝试这样的操作,会引发 TypeError 异常。例如,下面的代码会抛出异常:
student_scores = {'John': 90, 'Tom': 70, 'Lucy': 80}
values_view = student_scores.values()
# 删除第一个值
del values_view[0]
输出结果:
Traceback (most recent call last):
File "test.py", line 4, in <module>
del values[0]
TypeError: 'dict_values' object does not support item deletion
动态变化
与字典中的键(key)和值(value)具有关联关系不同,values() 方法返回的视图对象是动态的,跟随原字典中的值的变化而动态变化。
示例代码:
student_scores = {'John': 90, 'Tom': 70, 'Lucy': 80}
# 获取视图对象的初始值
values_view = student_scores.values()
print(values_view)
# 修改字典中的值
student_scores['Tom'] = 80
# 获取视图对象的新值
new_values_view = student_scores.values()
print(new_values_view)
输出结果:
dict_values([90, 70, 80])
dict_values([90, 80, 80])
如上所示,当字典的值发生变化时,通过 values() 方法获取的视图对象也会随之动态变化。
可迭代对象
由于 values() 方法返回的视图对象具有列表类型的特征,因此它也是 Python 的可迭代对象(Iterable)之一。
在 Python 中,可迭代对象(Iterable)是指实现了 iter 方法的对象,这种对象可以使用 for 循环遍历。
示例代码:
student_scores = {'John': 90, 'Tom': 70, 'Lucy': 80}
# 遍历字典中所有的值
for score in student_scores.values():
print(score)
输出结果:
90
70
80
如上所示,我们可以使用 for 循环遍历视图对象,也可以使用其他迭代器遍历工具,例如 map() 函数。
结论
values() 方法是 Python 字典(dictionary)中非常有用的一个方法,它可以帮助我们快速地获取字典中所有的值,并且方便进行后续的操作。这个方法返回的是一个视图(view)对象,具有列表类型的特征,支持遍历、切片和索引操作。在使用此方法时需要留意一些特性和限制,例如视图对象不支持更改和删除操作,同时也不是一个列表类型精确地对象。掌握了 values() 方法的使用,相信能帮助我们更高效地处理 Python 字典的相关问题。