我需要编写一个程序,可以将句子中的每个单词大写(存储为单词列表),不会影响句子其他部分的大写。
例如,假设句子是“你好,我是 ROB ALSOD”。在列表中,这将是:
['hello,','i','am','ROB','ALSOD']
我知道我可以遍历并使用 str.title()
方法为它们添加标题,但这会导致:
['Hello,','I','Am','Rob','Alsod']
注意到区别了吗?我想要的效果是:
['Hello,','I','Am','ROB','ALSOD']
换句话说,我想让其他大写字母保持不变。
最佳答案
这是单行代码,使用 list comprehensions和字符串 slicing :
>>> words = ['hello,','i','am','ROB','ALSOD']
>>> [word[:1].upper() + word[1:] for word in words]
['Hello,', 'I', 'Am', 'ROB', 'ALSOD']
它大写 word[:1]
(包括第一个字符在内的所有内容)而不是 word[0]
(第一个字符本身)以避免如果您的列表包含空字符串 ''
,则会出错。
关于python - 列表中每个单词的首字母大写;栏全部大写的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093619/