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“在这段代码中的作用。有人能给我解释一下吗?
编辑:有人能解释一下"partsi&1“也是做什么的吗?
发布于 2018-04-21 14:46:45
i >>= 1是赋值运算符i = i >> 1的简写,其中>>是按位右移位运算符。按位将i右移1与整数除以i除以2具有相同的效果。
https://stackoverflow.com/questions/49953132
复制相似问题