改进我如何循环浏览字典值的建议?

2024-10-01 00:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这就是我一直在用的:

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"])
    .
    .

我应该用这两个中的哪一个?还有其他方法吗?你知道吗


Tags: 方法inalphaappforitemscfgiter
3条回答

迭代dict中的值

for v in SHAPES.itervalues():
    v.drawOrder(97)
    ...

为字典提供最大灵活性的选项是使用enumerate()和口述(). 你知道吗

for i, (k,v) in enumerate(SHAPES.iteritems()):
   print "My index is {0}, key is {1}, and value is {2}".format(i, k, v)

如果您不需要密钥,只需忽略它并使用.itervalues()。如果您同时需要键和值,.iteritems()确实是一种方法。注意,在python3中,那些去掉了iter前缀的内容和python2 .values().items()(返回的列表)都不见了。它们有它们(很少)的用途,但是当你只是迭代时,就不需要复制字典的一半了。你知道吗

千万不要自己调用iter,除非你真的需要一个迭代器(例如next)。这几乎是从未有过的;)for i in iterable已经隐式地使用了iter(iterable)。你知道吗

相关问题 更多 >