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)])