【问题标题】:Find combinations without changing order在不改变顺序的情况下查找组合
【发布时间】:2022-11-21 11:58:02
【问题描述】:

我试图在不更改顺序的情况下从此列表生成排列。

mylist = [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i"]]

预期结果:

acegi
bcehi
acfgi
bcfhi
adegi
bdehi
adfgi
bdfhi
acegi
bcehi
acfgi
bcfhi
adegi
bdehi
adfgi
bdfhi

此代码按预期工作。但我想知道是否还有其他方法。

for f in range(2):
    for s in range(2):
        for t in range(2):
            for f in range(2):
                print(
                    mylist[0][f]
                    + mylist[1][s]
                    + mylist[2][t]
                    + mylist[3][f]
                    + mylist[4][0]
                )

【问题讨论】:

标签: python python-itertools


【解决方案1】:

你可以使用itertools.product

import itertools

mylist = [["a", "b"], ["c", "d"], ["e", "f"], ["g", "h"], ["i"]]

for p in itertools.product(*mylist):
    print(''.join(p))

# acegi
# acehi
# acfgi
# acfhi
# adegi
# adehi
# adfgi
# adfhi
# bcegi
# bcehi
# bcfgi
# bcfhi
# bdegi
# bdehi
# bdfgi
# bdfhi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多