Skip to main content
 首页 » 编程设计

python之python中集合列表的笛卡尔积

2024年10月25日41soundcode

我有一个集合列表。我不知道先验列表的长度。我想在我正在编写的一些代码中找到列表中集合的笛卡尔积。

例如: 我有

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)。