如何在Python中组合一个列表的列表[duplicate]

eqqqjvef  于 2023-02-20  发布在  Python
关注(0)|答案(1)|浏览(114)
    • 此问题在此处已有答案**:

(17个答案)
六年前关闭了。
我不知道是叫它 * 组合 * 还是 * 排列 *,所以这个问题可以根据你的评论进行编辑。
我有一个名单如下:

[
    ["a"],
    ["b", "c"],
    ["d", "e", "f"]
]

我希望此输出为:

[
    "abd",
    "acd",
    "abe",
    "ace",
    "abf",
    "acf"
]

我的首要任务是使用内置工具或手工制作,而不是使用其他科学模块,但是,如果没有办法,也可以使用科学模块。
环境

  • Python 3.5.1语言
ih99xse1

ih99xse11#

正如注解中所建议的,可以使用itertools.product,或者实现一个简单的递归方法:

def combine(lists, index=0, combination=""):
    if index == len(lists):
        print combination
        return
    for i in lists[index]:
        combine(lists, index+1, combination + i)

lists = [
    ["a"],
    ["b", "c"],
    ["d", "e", "f"]
]

combine(lists)

相关问题