这就是我一直在使用的:
for i in iter(SHAPES):
SHAPES[i].drawOrder(97)
SHAPES[i].alpha(CFG["SHP_alpha"])
.
.
这就是我的想法:
for i, v in app.SHAPES.items():
v.drawOrder(97)
v.alpha(CFG["SHP_alpha"])
.
.
我应该使用哪两个?还有其他方法吗?
答案 0 :(得分:6)
如果您不需要密钥,请忽略它并使用.itervalues()
。如果你需要密钥和值,.iteritems()
确实是要走的路。请注意,在Python 3中,那些摆脱了iter
前缀,而Python 2 .values()
和.items()
(返回列表)已经消失了。它们有(稀有)用途,但是当你只是迭代时,就没有必要复制一半字典了。
除非你真的需要一个迭代器(例如iter
),否则永远不要自己调用next
。这绝不是经常发生的事情;)for i in iterable
已经隐含地使用iter(iterable)
。
答案 1 :(得分:0)
迭代dict中的值。
for v in SHAPES.itervalues():
v.drawOrder(97)
...
答案 2 :(得分:0)
为字典提供最强灵活性的选项是使用enumerate()和dict.iteritems()。
for i, (k,v) in enumerate(SHAPES.iteritems()):
print "My index is {0}, key is {1}, and value is {2}".format(i, k, v)