首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表列表中查找所有排列,其中的输出包含每个列表中的所有、无或任何项。

从列表列表中查找所有排列,其中的输出包含每个列表中的所有、无或任何项。
EN

Stack Overflow用户
提问于 2022-11-20 03:37:56
回答 1查看 16关注 0票数 -1

我有任意数量的列表和任意数量的元素。我需要找到排列,以便每个置换包含每个列表中的所有、任何或任何元素。

代码语言:javascript
复制
l1 = ['red', 'blue', 'green']
l2 = ['big','small','medium']
l3 = ['fast','slow','stopped']

res = function([l1,l2,l3])

res = [(['red', 'blue', 'green'], ['big','small','medium'], ['fast','slow','stopped']),
 (['red', 'blue'], ['big','small','medium'], ['fast','slow','stopped']),
      ([],[],['fast'])]

我看过任何笛卡儿产品和迭代工具,但我的问题似乎是明显不同的,因为我需要所有的,任何的,或零的,而不仅仅是一组固定元素的每一个组合。

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 04:08:28

我想这是我讨厌的解决方案。

代码语言:javascript
复制
products = []
for r in range(len(l1)+1):
    perm = list(itertools.combinations(l1, r))
    for r2 in range(len(l2)+1):
        perm2 = list(itertools.combinations(l2, r2)) 
        for r3 in range(len(l3)+1):
            perm3 = list(itertools.combinations(l3, r3))
            for p in perm:
                for p2 in perm2:
                    for p3 in perm3:
                        products.append((p,p2,p3))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74505467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档