Python - 字典视图对象



dict 类的 `items()`、`keys()` 和 `values()` 方法返回视图对象。这些视图会在其来源 字典 对象内容发生任何更改时动态刷新。

items() 方法

items() 方法返回一个 dict_items 视图对象。它包含一个 列表,其中包含 元组,每个元组都由相应的键值对组成。

语法

以下是 items() 方法的语法:

Obj = dict.items()

返回值

items() 方法返回 dict_items 对象,它是 (键, 值) 元组的动态视图。

示例

在下面的示例中,我们首先使用 items() 方法获取 dict_items 对象,并在字典对象更新时检查它是如何动态更新的。

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.items()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

输出结果如下:

type of obj: <class 'dict_items'>
dict_items([(10, 'Ten'), (20, 'Twenty'), (30, 'Thirty'), (40, 'Forty')])
update numbers dictionary
View automatically updated
dict_items([(10, 'Ten'), (20, 'Twenty'), (30, 'Thirty'), (40, 'Forty'), (50, 'Fifty')])

keys() 方法

dict 类的 keys() 方法返回 dict_keys 对象,这是一个字典中所有键的列表。它是一个视图对象,因为每当对字典对象执行任何更新操作时,它都会自动更新。

语法

以下是 keys() 方法的语法:

Obj = dict.keys()

返回值

keys() 方法返回 dict_keys 对象,它是字典中键的视图。

示例

在这个例子中,我们创建一个名为 "numbers" 的字典,它包含整型键和它们对应的字符串值。然后,我们使用 keys() 方法获取键的视图对象 "obj",并检索它的类型和内容:

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.keys()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

输出结果如下:输出

type of obj: <class 'dict_keys'>
dict_keys([10, 20, 30, 40])
update numbers dictionary
View automatically updated
dict_keys([10, 20, 30, 40, 50])

values() 方法

values() 方法返回字典中所有值的视图。该对象是 dict_value 类型,会自动更新。

语法

以下是 values() 方法的语法:

Obj = dict.values()

返回值

values() 方法返回字典中所有值的 dict_values 视图。

示例

在下面的示例中,我们从 "numbers" 字典中使用 values() 方法获取值的视图对象 "obj":

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
obj = numbers.values()
print ('type of obj: ', type(obj))
print (obj)
print ("update numbers dictionary")
numbers.update({50:"Fifty"})
print ("View automatically updated")
print (obj)

输出结果如下:输出

type of obj: <class 'dict_values'>
dict_values(['Ten', 'Twenty', 'Thirty', 'Forty'])
update numbers dictionary
View automatically updated
dict_values(['Ten', 'Twenty', 'Thirty', 'Forty', 'Fifty'])
广告