Cpp*_*ner 4 python dictionary generator
这是一个基本上进行迭代的示例代码.
>>> d = {'lol': {'12': '3', '35':''}, 'w': {'12': '3', '35':''}}
>>> def iteritems(s):
... keys = s.keys()
... for key in keys:
... yield key, s[key]
...
>>> for k, v in iteritems(d):
... print k, v
...
w {'12': '3', '35': ''}
lol {'12': '3', '35': ''}
Run Code Online (Sandbox Code Playgroud)
这是一个有效的发电机.但是生成器iteritems必须调用s.keys()缓存字典中的所有键.如果字典很大(超过100个项目),那就没有内存效率.
但由于字典不是一个有序的结构,我认为获得密钥列表是必须的.
有人可能会说:键的数量远小于计算键和值的项目数.
有什么建议吗?或者更好的方式(当然我需要支持嵌套迭代,但这是另一回事).
Mar*_*ers 10
.iterkeys()在python 2.x中使用; 在python 3.x中,.keys()是一个视图,而不是一个新列表.在python 2.7中,您也可以使用该viewkeys()方法来获得相同的东西.
有一种等效的.iteritems()方法,使您的实用方法多余.:-)同样的评论适用于python 3.x和2.7,请参阅提供的文档.