Python 字典视图对象是什么

Python 字典视图对象是什么

字典是一种用于存储一组对象的数据结构。字典具有一组键,每个键都有一个分配的值。当给定一个键时,字典将返回分配的值。

在Python字典中,一些方法返回视图对象。这些视图对象是动态视图对象,意味着当我们对字典进行更改时,视图将反映所有这些更改。

Python字典的主要视图对象是键(keys),值(values)和项(items)。它们提供了字典条目的非常数视图。

键(keys)保存字典的所有键,值(values)对象保存所有值,而项(items)保存键值对。

键(keys)

视图对象键(keys)表示字典中的所有键。您可以使用 keys() 方法检索此对象的内容。

如果打印视图对象键,它将按插入顺序显示字典中所有 的新列表。

一旦我们使用keys()方法将所有键检索到一个变量中(比如keys),如果更新字典(即添加或删除键),这些更改将在变量中反映出来。

示例1

在以下示例中,我们尝试使用keys()方法检索字典的所有键。

d = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
k = d.keys()
print(k)
print(type(k))

输出

dict_keys(['a', 'b', 'c', 'd'])
<class 'dict_keys'>

示例 2

更新会在检索到的键中体现

在下面的程序中,我们创建了一个包含4个键值对的字典。将字典中的键检索出来并存储在变量keys中。

  • 稍后我们向字典中添加了一个元素。

  • 如果在更新之后打印变量 keys 的值。您可以在其中找到添加的元素的键。

dictionary = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
keys = dictionary.keys()
print("Keys before Dictionary Updation:", keys)

# updating the dictionary
dictionary['e'] = 5
print("listing updated dictionary:", dictionary)

# dynamic view object is updated automatically
print("Keys after Dictionary Updation:", keys)

输出

Keys before Dictionary Updation: dict_keys(['a', 'b', 'c', 'd'])
listing updated dictionary: {'a': 5, 'b': 2, 'c': 0, 'd': 7, 'e': 5}
Keys after Dictionary Updation: dict_keys(['a', 'b', 'c', 'd', 'e'])

示例3

以下是另一个示例中的 keys() 函数,这里我们移除一个键并验证检索到的键的内容。

dict = {'Madhu': 1001, 'Raju': 1002, 'Radha': 2003, 'Yadav': 9004}
print("The dictionary before removing a key is : " + str(dict))
removed_value = dict.pop('Raju')
print("The value of removed key is : " + str(removed_value))

# Printing dictionary after removal
print("The dictionary after removing key is : " + str(dict))

输出

The dictionary before removing a key is : {'Madhu': 1001, 'Raju': 1002, 'Radha': 2003, 'Yadav': 9004}
The value of removed key is : 1002
The dictionary after removing key is : {'Madhu': 1001, 'Radha': 2003, 'Yadav': 9004}

values

values() 是Python编程语言中的内置方法,它返回一个视图对象。该视图对象以列表形式包含字典的值。

示例1

以下是一个打印字典值的示例:

d = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
v = d.values()
print(v)
print(type(v))

输出

从下面的输出中可以看到,字典的所有值都被打印出来-

dict_values([5, 2, 0, 7])
<class 'dict_values'>

示例2-更新字典

以下是一个通过向字典中添加值来更新字典的示例-

d = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
v = d.values()
print('values before before updating : ', v)
d['e'] = 5
print('Dictionary after adding new value', d)

# dynamic view object is updated automatically
print('value of the updated dictionary: ', v)

输出

values before before updating : dict_values([5, 2, 0, 7]) Dictionary after adding new value {'a': 5, 'b': 2, 'c': 0, 'd': 7, 'e': 5} value of the updated dictionary: dict_values([5, 2, 0, 7, 5])

示例3

以下是一个对字典的值求和的示例 −

#Adding the values in the dictionary
d1 = {"apple" : 5000, "gold" : 60000, "silver" : 50000}
list1 = d1.values()
a=(sum(list1))
print('Total value:',a)

输出

Total value: 115000

items

items() 方法返回字典的项目(键值对)的新视图,作为包含所有具有值的字典键的列表。

语法

以下是items()的语法:

dictionary.items()

示例1

以下是一个打印字典中所有项目的示例 –

d = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
i = d.items()
print(i)
print(type(i))

输出

dict_items([('a', 5), ('b', 2), ('c', 0), ('d', 7)])
<class 'dict_items'>

示例2

以下是一个从字典中移除项的示例−

d1 = {'a': 5, 'b': 2, 'c': 0, 'd': 7}
# Printing all the Dictionarie’s item
print("Original Dictionary items:", d1)
items = d1.items()
# Delete an item from dictionary
del[d1['c']]

#Printing Updtaed dictionary
print('Updated Dictionary:',items)

输出

Original Dictionary items: {'a': 5, 'b': 2, 'c': 0, 'd': 7}
Updated Dictionary: dict_items([('a', 5), ('b', 2), ('d', 7)])

示例3

下面的示例显示了对字典的items()方法进行修改的情况-

car = {
   "brand": "Ford",
   "model": "Mustang",
   "year": 1964
}
print('Orginal dictionary: ',car)
x = car.items()
car["year"] = 2018
print('updated dictionary: ',x)

输出

从下面的输出结果可以看出,年份已从1964年修改为2018年−

Orginal dictionary: {'brand': 'Ford', 'model': 'Mustang', 'year': 1964}
updated dictionary: dict_items([('brand', 'Ford'), ('model', 'Mustang'), ('year', 2018)])

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程