我打算每五年更换一次" b"用" c" 这是我的输入字符串:
jStr = aabbbbbaa
现在这里是代码
import re
m = re.search('c', jStr)
jStr1 = jStr[:m.end()]
jStr2 = jStr[:m.end()]
jStr3 = jStr[:m.end()]
jStr4 = jStr[:m.end()]
jStr5 = jStr[m.end():]
jStr6 = jStr5.replace('c', 'b', 1)
jStr == (jStr1+jStr6)
我一直得到的输出是相同的
aabbbbbaa
我开始用?
答案 0 :(得分:1)
这可能不是最简洁的方法,您可以找到b
的所有索引,每5th
个索引,然后分配c
。由于str
内的索引不可分配,因此您必须转换为列表。
jStr = 'aabbbbbaa'
jStr = list(jStr)
bPos = [x for x in range(len(jStr)) if jStr[x] == 'b']
for i,x in enumerate(bPos):
if (i+1) % 5 == 0:
jStr[x] = 'c'
jStr = ''.join(jStr)
print(jStr)
输出:
aabbbbcaa
答案 1 :(得分:0)
jStr = "aabbbbbaabbbbb"
count = 1
res= "" # strings are immutable so we have to create a new string.
for s in jStr:
if count == 5 and s == "b": # if count is 5 we have our fifth "b", change to "c" and reset count
res += "c"
count = 1
elif s == "b": # if it is a "b" but not the fifth just add b to res and increase count
count += 1
res += "b"
else: # else it is not a "b", just add to res
res += s
print(res)
aabbbbcaabbbbc
查找每隔五分之一b,使用计数计算b,当我们达到第五个时,我们重置计数器并继续下一个字符。