我有一个简化的python代码,如下所示:
a = 100
x = 0
for i in range(0, a):
x = x + i / float(a)
有没有办法在for
循环中访问最大迭代次数?
基本上代码会改为:
x = 0
for i in range(0, 100):
x = x + i / float(thisloopsmaxcount)
其中thisloopsmaxcount
是一些奇特的python方法。
另一个选择是为这种行为实现一个完整的类。
答案 0 :(得分:1)
是的,你可以......
a = 100
x = 0
r = range(0,a)
for i in r:
x = x + i / r.stop
但是如果范围不是1,2,3 ...那么stop
不会是步数,例如range(10,12)
没有12个步骤,它有2个步骤。并且range(0,100,10)
计入数十,所以它没有100步。因此,您需要在适当的时候考虑(.stop - .start) / .step
。
它只适用于范围,通常一个for
循环可以从网络读取,或者基于用户输入的东西,其中唯一的方法来知道循环何时停止以及循环多少循环碰巧到了最后。
答案 1 :(得分:1)
没有任何内置功能,但您可以自行轻松计算:
x = 0
myrange = range(0, 100)
thisloopsmaxcount = sum(1 for _ in myrange)
for i in myrange:
x = x + i / float(thisloopsmaxcount)
答案 2 :(得分:0)