Python如何将字符串的第n个字母大写

问题描述:

我试过这个:Capitalize a string。任何人都可以提供一个简单的脚本/片段的指导?Python如何将字符串的第n个字母大写

Python文档具有capitalize()函数,它使首字母大写。我想要类似make_nth_letter_cap(str, n)

大写第n个字符和小写,其余为capitalize()做:

def capitalize_nth(s, n): 
    return s[:n].lower() + s[n:].capitalize() 

my_string[:n] + my_string[n].upper() + my_string[n + 1:] 

或者更高效的版本,是不是一个Schlemiel the Painter's algorithm

''.join([my_string[:n], my_string[n].upper(), my_string[n + 1:]]) 
+0

+1为此我没有看过的Spolskism。 – msw 2013-04-07 02:04:22

x = "string" 
y = x[:3] + x[3].swapcase() + x[4:] 

输出

strIng 

Code

请记住,swapcase将反转大小写或大写。
我用这只是为了显示一种替代方式。

+0

'x ='strIng''会给出不正确的结果 – 2013-04-07 02:11:38

+0

我在答案下面添加了一个注释 – cppcoder 2013-04-08 04:46:19