Python 列表中的大写元素(使用 Itertools?)

Python Capitalization elements in a list (using Itertools?)

我有一个包含整数的列表,它表示列表中一次会出现多少大写。

x = [1, 2]
# when x == 1 then 1 capitalization per time
# when x == 2 then 2 capitalization per time
l = ['a', 'b', 'c']

输出会像这样...

Abc
aBc
abC
ABc
AbC
aBC

我可以正常编码,但是可以通过 itertools 完成吗?

使用itertools.combinations选择要大写的字母索引:

from itertools import combinations


x = [1, 2]
l = ['a', 'b', 'c']


for xi in x:
    for comb in combinations(range(len(l)), xi):
        print("".join([e.upper() if i in comb else e for i, e in enumerate(l) ]))

输出

Abc
aBc
abC
ABc
AbC
aBC