关于改进我循环字典值的方法的建议?

rel*_*ima 0 python optimization dictionary loops

这就是我一直在使用的:

for i in iter(SHAPES):
    SHAPES[i].drawOrder(97)
    SHAPES[i].alpha(CFG["SHP_alpha"])
    .
    .
Run Code Online (Sandbox Code Playgroud)

这就是我的想法:

for i, v in app.SHAPES.items():
    v.drawOrder(97)
    v.alpha(CFG["SHP_alpha"])
    .
    .
Run Code Online (Sandbox Code Playgroud)

我应该使用哪两个?有没有其他方法可以做到这一点?

小智 6

如果您不需要密钥,请忽略它并使用.itervalues().如果你需要密钥和价值,.iteritems()确实是要走的路.请注意,在Python 3中,那些摆脱了iter前缀的Python 2 .values().items()(返回列表)都没有了.它们有(稀有)用途,但是当你只是迭代时,没有必要复制字典的一半.

iter除非你真的需要一个迭代器(例如for next),否则永远不要打电话给自己.这几乎不是经常的;)for i in iterable已经iter(iterable)隐含地使用了.