如何从Python元组列表中获取所有可能的组合

Vic*_*cky 1 python combinations tuples list python-3.x

我有一个这样的清单..

[
    [
        ("a", 1)
    ] ,
    [
        ("b", 2)
    ],
    [
        ("c", 3),
        ("d", 4)
    ],
    [
        ("e", 5),
        ("f", 6),
        ("g", 7)
    ]
    
]
Run Code Online (Sandbox Code Playgroud)

我试图从此列表数据中获取所有可能的组合。

我的预期输出应如下所示。

[
    [
        ("a", 1),
        ("b", 2),
        ("c", 3),
        ("e", 5)
    ],
        [
        ("a", 1),
        ("b", 2),
        ("c", 3),
        ("f", 6)
    ],
    [
        ("a", 1),
        ("b", 2),
        ("c", 3),
        ("g", 7)
    ],
    [
        ("a", 1),
        ("b", 2),
        ("d", 4),
        ("e", 5)
    ],
    [
        ("a", 1),
        ("b", 2),
        ("d", 4),
        ("f", 6)
    ],
    [
        ("a", 1),
        ("b", 2),
        ("d", 4),
        ("g", 7)
    ],
]
Run Code Online (Sandbox Code Playgroud)

我尝试使用 itertools.combinations 但无法获得预期的输出,不确定我缺少什么,无法找到逻辑,请帮忙。提前致谢。

如果您需要任何其他信息,请告诉我,

提前致谢,

Sam*_*ord 5

你想要itertools.product,没有itertools.combinations。每个元组列表都应该是 的一个参数product,因此请使用*运算符将​​起始列表的每个元素作为参数传递:

>>> import itertools
>>> list(itertools.product(*lists_of_tuples))
[(('a', 1), ('b', 2), ('c', 3), ('e', 5)), (('a', 1), ('b', 2), ('c', 3), ('f', 6)), (('a', 1), ('b', 2), ('c', 3), ('g', 7)), (('a', 1), ('b', 2), ('d', 4), ('e', 5)), (('a', 1), ('b', 2), ('d', 4), ('f', 6)), (('a', 1), ('b', 2), ('d', 4), ('g', 7))]
Run Code Online (Sandbox Code Playgroud)