我有以下 Python 代码,它循环遍历字符串并将每个字符大写:
str = 'abcd'
l = list(str)
for i in range(len(l)):
rl = list(str)
cap_char = l[i].capitalize()
rl[i] = cap_char
str1 = ''.join(rl)
print str1
产生:
Abcd aBcd abCd abcD
我想增强此代码以增加受大写限制的连续字符的数量,直到该数字达到 len(l) - 1 以生成:
Abcd aBcd abCd abcD >> - 1 char capitalized
ABcd aBCd abCD AbcD >> - 2 chars capitalized
ABCd aBCD AbCD ABcD >> - 3 chars capitalized
我在进行索引运算时遇到“索引超出范围”错误,理解 idices 应该换行,但似乎无法生成优雅的代码;(
最佳答案
import itertools
x = 'abcd'
n = len(x)
for i in xrange(1,n):
combinations = itertools.combinations(range(n), i)
for c in combinations:
print ''.join([k if m not in c else k.upper() for m,k in enumerate(x)]),
print ' >> - {0} char(s) capitalized'.format(i)
输出:
Abcd aBcd abCd abcD >> - 1 char(s) capitalized
ABcd AbCd AbcD aBCd aBcD abCD >> - 2 char(s) capitalized
ABCd ABcD AbCD aBCD >> - 3 char(s) capitalized
关于python - Python中双循环中所有字符串的大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7278092/