在Python中高效地确定powerset成员之间的子集
因此,我用以下方式为字母表的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
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