gpt4 book ai didi

python - python中for循环迭代的 native 计数器

转载 作者:行者123 更新时间:2023-11-28 21:21:14 25 4
gpt4 key购买 nike

当我在 python 中迭代一个可迭代对象时,我曾经或多或少地跟踪我在迭代中的位置,方法是在循环外创建一个迭代器并在循环内递增它:

i = 0
for x in res:
if not(i % 10):
print("On count {}".format(unicode(i)))
f(x)
i +=1

因此,在我的 6 行循环中,其中 4 行专用于计数器 i。

我知道我也可以将枚举用作:

for i,x in enumerate(res):
if not(i % 10):
print("On count {}".format(unicode(i)))
f(x)

这节省了 2 行。

我想知道是否/仍然/有更简洁的方法来处理这个问题并在某个循环间隔内向用户提供漂亮的反馈。我怀疑 __iter__ 中可能内置了一些东西,这样我的 x 就可以调用某种计数? x.___count___ 或者我什至不需要调用枚举的东西?

此外,对于以更实用的方式提供此类反馈,有人有建议吗?我如何将这个计数器嵌入到 map 中,而不是 for 循环?

最佳答案

enumerate 绝对是正确的做法。

  1. 每个 python 程序员都知道enumerate。它是内置的,其意图显而易见。如果可能,请始终选择内置。

  2. enumerate 将您的关注点分开。遍历集合和计算迭代次数是不同的有用函数,可在不同上下文中重复使用。

  3. enumerate 强制显式声明计数器变量。如果您打算使用它,那么它比 __count__ 更胜一筹,这是一个隐藏在幕后的神秘属性。 enumerate 的唯一事实告诉读者迭代索引很重要。

前往枚举

关于python - python中for循环迭代的 native 计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com