集蟒蛇的力量集和笛卡尔积

时间:2012-04-26 23:43:53

标签: python python-3.x

我试图找到两个不同组的笛卡尔积。我在网上找不到关于笛卡尔产品的任何内容,无论是列表还是字典。

此外,电源设置非常混乱。

这些都不在我的书中。我一直在使用。

有一个人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:14)

对于笛卡尔积,请查看itertools.product

对于powerset,the itertools docs也给我们一个食谱:

def powerset(iterable):
    "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
    s = list(iterable)
    return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))

例如:

>>> test = {1, 2, 3}
>>> list(powerset(test))
[(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)]
>>> list(product(test, test))
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]