Python 3 – 字典 values() 方法

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 字典的相关问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程