>> = Python3中的运算符

时间:2018-04-21 06:43:06

标签: python python-3.x

def partitions(set_):
    if not set_:
        yield []
        return
    for i in range(2**len(set_)//2):
        parts = [set(), set()]
        for item in set_:
            parts[i&1].add(item)
            i >>= 1
        for b in partitions(parts[1]):
            yield [parts[0]]+b

def get_partitions(set_):
    for partition in partitions(set_):
        yield [list(elt) for elt in partition]

我试图了解" i>> = 1"在这段代码中。有人可以向我解释一下吗?

编辑:有人可以解释一下"部分[i& 1]"还有吗?

1 个答案:

答案 0 :(得分:0)

i >>= 1i = i >> 1的赋值运算符简写,其中>>是按位右移运算符。将i按位向右逐位移位与将i整数除以2的整数效果相同。