有没有办法让嵌套循环尽可能多的循环(python)?

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


我用 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 组字母来做这件事怎么办?有没有更简单的方法?


江户川乱折腾
浏览 156回答 2
2回答

慕桂英3389331

itertools.product 正是这样做的:from itertools import productinlist = ["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).

心有法竹

>>> import itertools>>> inlist = ["Aa", "Bb", "Cc"]>>> [''.join(i) for i in itertools.product(*inlist)]['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python