有没有办法用尽可能多的循环(python)创建一个嵌套循环? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我想要做的就是创建每一个组合,但只使用每个字母中的一个

我用3套字母做了

inlist = ["Aa", "Bb", "Cc"]
outlist = []

for i in inlist[0]:
    for j in inlist[1]:
        for k in inlist[2]:
            outlist.append(str(i + j + k))

输出:outlist = ['ABC','ABc','AbC','abc','aBC','aBc','abC','abc']

如果我想用2或4组字母做这个怎么办?有没有更简单的方法?

python loops for-loop nested-loops
2个回答
1
投票

itertools.product正是这样做的:

from itertools import product

inlist = ["Aa", "Bb", "Cc"]
outlist = []

for abc in product(*inlist):
    outlist.append(''.join(abc))

print(outlist)
# ['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']

abc是从('A', 'B', 'C')('a', 'b', 'c')的元组。唯一留下的是join回到''.join(abc)的字符串。


0
投票
>>> import itertools
>>> inlist = ["Aa", "Bb", "Cc"]
>>> [''.join(i) for i in itertools.product(*inlist)]
['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']
© www.soinside.com 2019 - 2024. All rights reserved.