在Python中,将字符串中每个单词的第一个字母大写

2024-09-28 03:12:19 发布

您现在位置:Python中文网/ 问答频道 /正文

Python中的这个函数有一个小问题,它应该返回字符串中每个单词的第一个字母大写,其他所有字母都小写:

def titleize(phrase):
    split_phrase = phrase.split()

    for word in split_phrase:
        word.capitalize()

    return ' '.join(split_phrase)

titleize('oNLy cAPITALIZe fIRSt')->oNLy cAPITALIZe fIRSt

很明显,问题在于这个短语(我想)上的循环被分割了,我怀疑它不是变异,而是创造了一些新的东西,但我一直在努力修复它


Tags: 函数字符串infordef字母单词word
2条回答

我可以建议使用内置的str.title()函数吗

def titleize(phrase):
    capitalize_first = phrase.title()
    return capitalize_first
    
print(titleize('oNLy cAPITALIZe fIRSt'))

输出:

Only Capitalize First

如果split_phrase变量在任何时候都没有改变,就不会在任何地方分配结果

您可以按照@pythonenthusiast的建议使用str.title(),或者使用list comprehension来简化当前的方法:

def titleize(phrase):
    return ' '.join([word.capitalize() for word in phrase.split()])

原始代码的更正版本可能如下所示:

def titleize(phrase):
    split_phrase = phrase.split()
    result = []
    for word in split_phrase:
        result.append(word.capitalize())
    return ' '.join(result)

在这里,创建了一个新的result列表,在每次迭代中,我们将更改的单词附加到列表中。最后,我们join并返回新的result列表

相关问题 更多 >

    热门问题