【问题标题】:Python all combinations of one item per list [duplicate]Python每个列表一项的所有组合[重复]
【发布时间】:2021-02-18 09:10:34
【问题描述】:

我有不同数量的不同长度的列表。我需要尝试创造每个列表有一个项目的所有可能性。这如何在 Python 中完成?

例子

l1 =  ['a', 'b', 'c']
l2 =  [1, 2]
l3 =  [6]

# Expected result:
[
  ['a', 1, 6],
  ['a', 2, 6],
  ['b', 1, 6],
  ['b', 2, 6],
  ['c', 1, 6],
  ['c', 2, 6],
]

在这种情况下,我可以有 3 个循环,但由于这是用于不明确数量的列表,因此无法扩展。

我尝试了一下使用 itertools,但不知道该用什么来处理我的案例,并且在这里找不到类似的问题。因此,我们将不胜感激。

【问题讨论】:

标签: python loops itertools combinatorics


【解决方案1】:

如果您有不同数量的列表,您应该使用列表列表,而不是单独的变量。然后您可以将列表展开为itertools.product() 的参数。

import itertools

lists = [
    ['a', 'b', 'c'],
    [1, 2],
    [6]
]

print(list(itertools.product(*lists)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 2018-05-15
    相关资源
    最近更新 更多