簡體   English   中英

dict_keys是生成器函數嗎?

[英]Is dict_keys a generator function?

>>> 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__的方式)?

dict_keys()字典視圖對象 這樣的對象是可迭代的 (意味着您可以使用iter()為該對象創建多個獨立的迭代器 )。

您可以從.keys()方法返回自己的此類對象實現。 dict.keys()返回的特定類型不可重用,您必須從頭開始實現自己的類型。

我在先前的回答中談到了創建自己的問題 ; 有很多方法可以涵蓋。

請注意, 生成器函數僅僅是使用Python函數創建迭代器的一種技術 所有生成器函數在調用時都會生成一個迭代器,但並非所有迭代器都是生成器迭代器。 您還可以使用生成器表達式創建迭代器,或通過包括返回self__iter__方法和每次調用時產生其中一項的__next__方法來創建迭代器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM