12

我试过这个:大写字符串。任何人都可以提供一个简单的脚本/片段作为指导吗?

Python 文档具有capitalize()使首字母大写的功能。我想要类似的东西make_nth_letter_cap(str, n)

4

7 回答 7

21

将第 n 个字符大写,其余字符小写capitalize()

def capitalize_nth(s, n):
    return s[:n].lower() + s[n:].capitalize()
于 2013-04-07T02:22:11.897 回答
14
my_string[:n] + my_string[n].upper() + my_string[n + 1:]

或者不是Schlemiel the Painter 算法的更有效版本:

''.join([my_string[:n], my_string[n].upper(), my_string[n + 1:]])
于 2013-04-07T01:56:19.250 回答
0
x = "string"
y = x[:3] + x[3].swapcase() + x[4:]  

输出

strIng  

代码

请记住,swapcase无论是较低的还是较高的,都会反转大小写。
我用它只是为了展示另一种方式。

于 2013-04-07T02:00:34.353 回答
0

我知道这是一个老话题,但这可能对将来的某人有用:

def myfunc(str, nth):
new_str = '' #empty string to hold new modified string
for i,l in enumerate(str): # enumerate returns both, index numbers and objects
    if i % nth == 0: # if index number % nth == 0 (even number)
        new_str += l.upper() # add an upper cased letter to the new_str
    else: # if index number nth
        new_str += l # add the other letters to new_str as they are
return new_str # returns the string new_str
于 2018-08-29T18:53:04.010 回答
0

一个简化的答案是:

    def make_nth_letter_capital(word, n):
        return word[:n].capitalize() + word[n:].capitalize()
于 2019-06-28T06:58:39.167 回答
0
def capitalize_n(string, n):
return string[:n] + string[n].capitalize() + string[n+1:]

这很完美

于 2019-08-01T13:27:06.633 回答
0

您可以使用:

def capitalize_nth(text, pos):
    before_nth = text[:pos]
    n = text[pos].upper()
    new_pos = pos+1
    after_nth = text[new_pos:]
    word = before_nth + n + after_nth
    print(word)

capitalize_nth('McDonalds', 6)

结果是:

'McDonaLds'

我认为这是那里所有答案中最简单的......

于 2020-09-14T13:33:57.833 回答