python 中集合列表的笛卡尔积
Cartesian product of a list of sets in python
我有一个集合列表。我不知道先验列表的长度。我想在我正在编写的一些代码中找到列表中集合的笛卡尔积。
例如:
我有
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
当我不知道列表的大小时,有没有简单的方法可以做到这一点?
使用itertools.product(*list_of_sets)
.
我有一个集合列表。我不知道先验列表的长度。我想在我正在编写的一些代码中找到列表中集合的笛卡尔积。
例如: 我有
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
当我不知道列表的大小时,有没有简单的方法可以做到这一点?
使用itertools.product(*list_of_sets)
.