for k in d.keys()操作对应的是PyDictKeys_Type里的dictkeys_iter函数,返回了这个DictView视图对应的dict的key的iterator,类型为PyDictIterKey_Type。在迭代遍历时候,会一直调用PyDictIterKey_Type里定义的dictiter_iternextkey执行迭代过程中的next操作,从而一个个地获得dict里所有key。 PyTypeObjectPyDictIterKey_...
dict的keys()返回的数据类型是dict_keys。dict_keys实际上是一种dict的视图,从逻辑上看,它只包含了一个指向dict的指针。它不是list,也不是set。在Python的dict数据结构定义中,可以找到dict_keys的定义。dict_keys的实现类似于一个dict实例的代理,用户请求操作时,代理会给出最高效方案。例如,当使...