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)隐含地使用了.