python - 如何在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))
解决方案
你的问题很适合使用正则表达式,所以我建议在这里:
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
请注意,此方法不会针对任何单个字母单词,因为它们不会跟随另一个单词字符。
推荐阅读
- python - 如何正确使用 BeautifulSoup4 中的选择功能?
- javascript - 使用 jest 模拟 moment() 和 moment().format
- c# - TPL 数据流 - 块未按预期处理
- html - 可以在img元素的alt文本中为单个字符加下划线吗
- javascript - 为什么 Javascript 事件处理程序只适用于 HTML 页面?
- string - Get-Content 真正输出什么,一个字符串或几个属性?
- excel - 私有子单元格值
- sql-server - 在存储过程中创建 VIEW 的问题
- qnx - 'getline' 未在此范围内声明,这是什么意思?
- sql - 如何更改 PostgreSQL 序列的下一个默认值?