gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:16:01 25 4
gpt4 key购买 nike

今天在研究dict.viewkeys(),发现我的python调用了dict_keys对象。我可以将它作为可迭代对象来处理,但它不是生成器,因为我可以不止一次地对其进行迭代。

以我有限的知识,我只知道几种数据类型,例如String、int、float、list、dict、tuple、set。

但是昨天我了解到 enumerate() 返回一对特殊的数据,只能被 dict() 使用一次,因此它是一个特殊的元组生成器 (index_of_iteration, item)

这个 dict_keys 对象是 python 中另一个“我不知道它到底是什么,但我知道如何使用它”类型的对象,还是其他什么?

最佳答案

它返回一个字典 View 对象(https://docs.python.org/2/library/stdtypes.html#dictionary-view-objects)。

这是字典中元素的动态 View 。也就是说,如果您对字典中的键有一个 View ,如果您从字典中删除一个键,它也会从 View 中删除。请参阅下面的示例。

来自文档:

>>> 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, 1, 500]

>>> # view objects are dynamic and reflect dict changes
>>> del dishes['eggs']
>>> del dishes['sausage']
>>> list(keys)
['spam', 'bacon']

>>> # set operations
>>> keys & {'eggs', 'bacon', 'salad'}
{'bacon'}

另见:What are Python dictionary view objects?

关于python - dict.viewkeys() 返回的数据类型是什么? [ python 2.7 ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com