我今天正在学习dict.viewkeys(),我发现我的
python称它为dict_keys对象.我可以将它作为一个可迭代的处理,但它不是一个生成器,因为我可以不止一次迭代它.
根据我的有限知识,我只知道一些数据类型,如String,int,float,list,dict,tuple,set.
但昨天我了解到enumerate()返回一个特殊的数据对,dict()只能使用一次,因此它是一个特殊的元组生成器,带有(index_of_iteration,item)值
这个dict_keys对象是另一个“我不知道它究竟是什么但我知道如何使用它”在python中的对象类型,还是其他什么?
解决方法
它返回一个字典视图对象(
https://docs.python.org/2/library/stdtypes.html#dictionary-view-objects).
这是字典中元素的动态视图.即如果您查看字典中的键,如果从字典中删除键,它也将从视图中删除.请参阅以下示例.
来自文档:
>>> dishes = {'eggs': 2,'sausage': 1,'bacon': 1,'spam': 500} >>> keys = dishes.viewkeys() >>> values = dishes.viewvalues() >>> # iteration >>> n = 0 >>> for val in values: ... n += val >>> print(n) 504 >>> # keys and values are iterated over in the same order >>> list(keys) ['eggs','bacon','sausage','spam'] >>> list(values) [2,1,500] >>> # view objects are dynamic and reflect dict changes >>> del dishes['eggs'] >>> del dishes['sausage'] >>> list(keys) ['spam','bacon'] >>> # set operations >>> keys & {'eggs','salad'} {'bacon'}