python中集合列表的笛卡尔积

时间:2015-02-16 23:39:27

标签: python itertools

我有一套套装。我不知道apriori列表的长度。我想在我写的一些代码中找到列表中的集合的笛卡尔积。

例如: 我有

list_of_sets=[set(['A']),set(['A','B','C']), set('D','E')];

我想输出这些集合的笛卡尔积,即

('A', 'A', 'E')
('A', 'A', 'D')
('A', 'C', 'E')
('A', 'C', 'D')
('A', 'B', 'E')
('A', 'B', 'D')

如果我知道该列表的大小为3,我可以使用以下代码生成此笛卡尔积。

for i in itertools.product(list_of_sets[0],list_of_sets[1],list_of_sets[2]):
    print i

当我不知道列表的大小时,是否有一种简单的方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

使用itertools.product(*list_of_sets)