如何在Python中使用右移迭代步骤?

时间:2011-09-30 19:05:34

标签: python

是否可以在xrange中使用右移作为步骤参数?

基本上我正在尝试这样做(伪代码)

for i in xrange(35926661, 0, _value_>>6):
    //logic

2 个答案:

答案 0 :(得分:3)

没有

xrange总是通过添加第三个参数来工作。你不能告诉它做一些像右移这样的事情。

while循环可以使用,可能有更好的解决方案,但如果没有关于你正在做什么的更多信息,很难说。

答案 1 :(得分:3)

您可以使用生成器定义自定义xrange - 类似函数:

def lrange(a, b, f):
    num = a
    comp = operator.lt if (a < b) else operator.gt

    while comp(num, b):
        yield num
        num = f(num)

然后:

for x in lrange(35926661, 0, lambda x: x>>6):
    print(x)

http://codepad.org/0pYfWqSF