s = 'the brown fox'

...在这里做点什么……

S应为:

'The Brown Fox'

最简单的方法是什么?


当前回答

另一个解决方案是:

" ".join(map(lambda d: d.capitalize(), word.split(' ')))

其他回答

尽管所有的答案都是令人满意的,但我将尝试涵盖两个额外的情况以及所有前面的情况。

如果空间不均匀,你想保持不变

string = hello    world i  am    here.

如果所有的字符串不是从字母开始

string = 1 w 2 r 3g

在这里你可以使用这个:

def solve(s):
    a = s.split(' ')
    for i in range(len(a)):
        a[i]= a[i].capitalize()
    return ' '.join(a)

这将给你:

output = Hello    World I  Am    Here
output = 1 W 2 R 3g

如果str.title()对您不起作用,请自己大写。

将字符串拆分为单词列表 每个单词的第一个字母大写 把单词连接成一个字符串

一行程序:

>>> ' '.join([s[0].upper() + s[1:] for s in "they're bill's friends from the UK".split(' ')])
"They're Bill's Friends From The UK"

明显的例子:

input = "they're bill's friends from the UK"
words = input.split(' ')
capitalized_words = []
for word in words:
    title_case_word = word[0].upper() + word[1:]
    capitalized_words.append(title_case_word)
output = ' '.join(capitalized_words)

你可以试试这个。简单而利落。

def cap_each(string):
    list_of_words = string.split(" ")

    for word in list_of_words:
        list_of_words[list_of_words.index(word)] = word.capitalize()

    return " ".join(list_of_words)

以防你想裁员

# Assuming you are opening a new file
with open(input_file) as file:
    lines = [x for x in reader(file) if x]

# for loop to parse the file by line
for line in lines:
    name = [x.strip().lower() for x in line if x]
    print(name) # Check the result

正如Mark指出的,你应该使用.title():

"MyAwesomeString".title()

然而,如果你想让Django模板中的第一个字母大写,你可以这样做:

{{ "MyAwesomeString"|title }}

或者使用变量:

{{ myvar|title }}