首页 > 解决方案 > 如何在python中以大写字母更改单词的第i个字母?

问题描述

我想以大写字母更改每个单词的倒数第二个字母。但是当我的句子包含一个带有一个字母的单词时,程序会给出错误(IndexError:字符串索引超出范围)。这是我的代码。它适用于多个字母的单词。例如,如果我写 str="Python 是最好的编程语言",它将起作用,因为没有任何带有(一个)字母的单词。

str ="I Like Studying Python Programming"
array1=str.split()

result =[]
for i in array1:
     result.append(i[:-2].lower()+i[-2].upper()+i[-1].lower())

print(" ".join(result))

标签: pythonstringsplitword

解决方案


你的问题很适合使用正则表达式,所以我建议在这里:

str = " I Like Studying Python Programming"
output = re.sub(r'(\w)(?=\w\b)', lambda m: m.group(1).upper(), str)
print(output)

这打印:

I LiKe StudyiNg PythOn ProgrammiNg

请注意,此方法不会针对任何单个字母单词,因为它们不会跟随另一个单词字符。


推荐阅读