加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 编程开发 > Python > 正文

dict.viewkeys()返回的数据类型是什么? [python 2.7]

发布时间:2020-12-30 11:20:51 所属栏目:Python 来源:互联网
导读:我今天正在学习dict.viewkeys(),我发现我的 python称它为dict_keys对象.我可以将它作为一个可迭代的处理,但它不是一个生成器,因为我可以不止一次迭代它. 根据我的有限知识,我只知道一些数据类型,如String,int,float,list,dict,tuple,set. 但昨天我了解到enume

我今天正在学习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'}

另见:What are Python dictionary view objects?

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读