【问题标题】:Cartesian product of a list of sets in pythonpython中集合列表的笛卡尔积
【发布时间】:2015-02-16 23:39:27
【问题描述】:

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

例如: 我有

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

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

【问题讨论】:

    标签: python itertools


    【解决方案1】:

    使用itertools.product(*list_of_sets)

    【讨论】:

      猜你喜欢
      • 2020-07-05
      • 2015-01-28
      • 2012-09-07
      • 1970-01-01
      • 2012-03-24
      • 2019-04-20
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      相关资源
      最近更新 更多