Python - 字典视图对象



dict 类的 items()keys()values() 方法返回视图对象。每当其源 Dictionary 对象的内容发生任何更改时,这些视图都会动态刷新。

items() 方法

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

语法

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


 Obj = dict.items()

返回值

items() 方法返回dict_items对象,该对象是 (key,value) 元组的动态视图。

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


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对象,该对象是字典中定义的所有键的列表。它是一个视图对象,因为每当对 dictionary 对象执行任何更新操作时,它都会自动更新。

语法

以下是 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视图。

在下面的示例中,我们使用 values() 方法从 “numbers” 字典中获取值的视图对象 “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'])