Python中如何将列表中第一个单词的首字母大写。

6

我正在使用list[0][0]来查找列表中第一个单词的第一个字母。但是我不知道如何将它大写。任何帮助都将不胜感激!


如果您已经收到答案并对解决方案感到满意,请考虑将其标记为“已接受”。这有助于其他遇到相同问题的人更快地获得解决方案,并防止其他人不必要地回答。 - Fardeen Khan
8个回答

18

事实上,它比你想象的要简单得多。 按照这个代码,将列表中的所有单词都大写或者有选择地进行大写。

    singers = ['johnny rotten', 'eddie vedder', 'kurt kobain', 'chris cornell', 'micheal phillip jagger']
    singers = [singer.capitalize() for singer in singers]
    print(singers)

   #instead of capitalize use title() to have each word start with capital letter

输出:

Johnny rotten, Eddie vedder, Kurt kobain, Chris cornell, Micheal phillips jagger

将来您可以以这种方式保存名称以供将来使用:
使用.title()而不是.capitalize()来大写每个单词。


姓氏怎么样? - MrJLP
2
就像我说的那样,只需将 .capitalize() 替换为 .title() - 这将使每个单词首字母大写,因此它将大写姓氏。 - Beatrix Kidco

7
你可以使用str.capitalize()函数将每个字符串首字母大写。如果字符串中有其他大写字母,它们将被转换为小写字母,这可能与你的需求相关或不相关。
如果你希望将所有字母都转换为大写,可以使用str.upper()函数。
In [26]: "foo bar".capitalize() # first letter 
Out[26]: 'Foo bar'
In [30]: "foo Bar".capitalize() 
Out[30]: 'Foo bar'    
In [27]: "foo".upper() # all letters
Out[27]: 'FOO'

5
您可以使用string类的title方法,该方法将使句子中每个单词的首字母大写:
my_list = ['apple pie', 'orange jam']
print my_list[0].title()

结果:

Apple Pie

或者使用 capitalize 方法,该方法只将第一个字母大写:

my_list = ['apple pie', 'orange jam']
print my_list[0].capitalize()

结果:

Apple pie

它只打印第一个单词,我正在尝试将整个句子打印出来,只有第一个字母大写,其余都是正常的。 - Mark Kent
你的列表长什么样? - Selcuk
我的列表基本上是用户输入的任何内容。我将一个句子分割成一个列表,然后操作一些单词并将它们转换回字符串。但我只是想让第一个字母大写,其余部分并不重要。因此,它可能看起来像“我要去商店”,而列表只是所有这些单词。 - Mark Kent
那么你就不需要拆分它。只需使用 sentence.capitalize() 即可。 - Selcuk

0

有两个函数可以实现这个功能,分别是title和capitalize。

title函数会将每个单词的首字母大写。

>>> 'test code'.title()
'Test Code'

如果第一个字符是数字,它也会“工作”:

>>> '_test'.title()
'_Test'

Capitalize(大写)会将第一个单词的首字母大写,如果第一个字符不是字母,则不做任何操作:

>>> 'test code'.capitalize()
'Test code'

>>> '_test'.capitalize()
'_test'

你可能需要提到它还会将其他所有字符变成小写。 'hello Thomas'.capitalize() 返回 'Hello thomas' - TomNorway

0

将单词列表中的所有字母大写

fruitlist = ['apple', 'banana', 'cherry', 'durian', 'orange']
for i in fruitlist:
    print (i.upper(), end=', ')

如果你只想要每个单词的首字母...

fruitlist = ['apple', 'banana', 'cherry', 'durian', 'orange']
for i in fruitlist:
    print (i.title(), end=', ') #in this case i.capitalize() can also be used 

0
x = ['roger federer', 'timothy olyphant', 'rani laxmibai', 'lata mangeshkar']
x = str(x)
x =(x.title().replace('[','').replace(']',''))
x = ''.join(x)
print(x)

解决方案- 'Roger Federer','Timothy Olyphant','Rani Laxmibai','Lata Mangeshkar'
在此,我通过str(x)将列表(x)转换为字符串,因此我们可以在字符串(x)中使用title或capitalize等函数。 您可以使用dir(x)查看可以用于该对象x的函数。我已经使用了title函数,您可以使用title或capitalize,并将其替换为nothing。通过使用Join将它们组合在一起。 请评价我的步骤和工作流程。谢谢。

欢迎来到stackoverflow,Hardik,并感谢您的贡献。不幸的是,我认为这不会很好地工作。一些字符串可能包含 '[' 或 ']' 字符。而且,join 是一个无操作,因为 x 已经是一个简单的字符串。最后,你得到了一个单一的字符串,失去了列表结构... 这可能不是提问者的意图。关于使用 dir(x) 的提示非常有用。您还可以指向Python字符串文档。 - Matthias C. M. Troffaes

0
a = ['alpha', 'bravo','rocky']


def listC(a):


    l = [i.Title() for i in a] # [expression for item in list]
    return l

l = listC(a)

print(l)

我相信这将会把字符串中的所有单词都大写,而不仅仅是第一个单词。 - Fardeen Khan
给定一个字符串列表a,尝试将其转换为首字母大写的形式并存储在新列表l中:l = [i.title() for i in a] - Koosul

0

您可以使用 camelcase 包:

import camelcase

list_name = input("Enter a list of names")
print(list_name)
cm = camelcase.CamelCase()
list_name = cm.hump(list_name)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接