在Python中高效地确定powerset成员之间的子集

在Python中高效地确定powerset成员之间的子集,python,performance,optimization,bin,powerset,Python,Performance,Optimization,Bin,Powerset,因此,我用以下方式为字母表的powerset的成员编制了索引: def bytecode_index(some_subset): mask = 0 for index in bytearray(some_subset): mask |= (1<<(index-97)) return mask 这似乎效率低下,因为它需要将索引转换为字符串,然后对它们进行组件式比较。非常感谢您的任何帮助 是否有更简单的操作可用于快速比较两个索引?我不知道Pyth

因此,我用以下方式为字母表的powerset的成员编制了索引:

def bytecode_index(some_subset):
    mask = 0
    for index in bytearray(some_subset):
        mask |= (1<<(index-97))
    return mask
这似乎效率低下,因为它需要将索引转换为字符串,然后对它们进行组件式比较。非常感谢您的任何帮助


是否有更简单的操作可用于快速比较两个索引?

我不知道Pythonically,但通常检查一个位掩码是否是另一个位掩码的子集的方法是:

(x & y) == x
如果为true,
x
y
的子集

这只是我们熟悉的比特数学的等价物

A⊆ B⇔ A.∩ B=A

(x & y) == x