我想要一些技巧来理解partiton代码

时间:2019-08-30 14:19:36

标签: python-3.x

我正在从MIT课程中编写一些代码,并将此代码作为帮助功能使用,但是有些部分对我的python不太了解 理解。

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

我不明白它是由列表,字典或其他迭代对象组成的许多不同组合。
我对这部分内容不屑一顾:

parts[i&1].add(item)
i >>= 1

这里有些人可以尝试向我解释这部分吗? 我在网上寻找一些东西,但是不确定我是否完全理解。

谢谢!

PS-有什么方法可以使可读性更强,并可以在排列,组合等功能中使用双向功能?

0 个答案:

没有答案