【问题标题】:Is dict_keys a generator function?dict_keys 是生成器函数吗?
【发布时间】:2013-08-13 13:08:46
【问题描述】:
>>> d = {'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d
{'m': 'mango', 'f': 'fish', 'a': 'apple'}
>>> d.keys()
dict_keys(['m', 'f', 'a'])
>>> for x in d.keys(): print(x)
m
f
a
>>> |

什么是dict_keys() 以及如何在方法中覆盖它(__iter__ 的方式 被覆盖)?

【问题讨论】:

    标签: python python-3.x dictionary generator


    【解决方案1】:

    dict_keys()dictionary view object;此类对象为iterables(意味着您可以为此类对象创建多个独立的iterators,使用iter())。

    您可以从.keys() 方法返回您自己对此类对象的实现。 dict.keys() 返回的特定类型不可重复使用,您必须从头开始实现。

    我在previous answer 中介绍了如何创建自己的;有很多方法可以涵盖。

    请注意,generator functions 只是一种使用 Python 函数创建迭代器的技术。所有生成器函数在调用时都会产生一个迭代器,但并非所有迭代器都是生成器迭代器。您还可以使用生成器表达式创建迭代器,或者通过包含__iter__ method that returns self__next__ method 来创建迭代器,每次调用时都会生成其中一个项目。

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 2013-05-21
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 2014-04-17
      • 2017-02-18
      相关资源
      最近更新 更多