Capitalisation of First Letter of Each Word in a List; Bar All-Caps Words
我需要编写一个程序,可以将句子中的每个单词大写(存储为单词列表),而不会影响句子其他部分的大小写。
比方说,例如,句子是'你好,我是ROB ALSOD'。 在列表中,这将是:
1 | ['hello,','i','am','ROB','ALSOD'] |
我知道我可以循环并使用
1 | ['hello,','i','am','ROB','ALSOD'] |
请注意区别? 我想要的效果是:
1 | ['hello,','i','am','ROB','ALSOD'] |
换句话说,我想保持其他大写字母相同。
这是一个单行,使用列表推导和字符串切片:
1 2 3 | >>> words = ['hello,','i','am','ROB','ALSOD'] >>> [word[:1].upper() + word[1:] for word in words] ['Hello,', 'I', 'Am', 'ROB', 'ALSOD'] |
它将
虽然Zero Piraeus的答案是正确的,但我会为了避免循环而使用更具功能性的语法。
1 2 3 4 | >>> words = ['hello,','i','am','ROB','ALSOD'] >>> def up(word): return word[:1].upper() + word[1:] >>> map(up, words) ['Hello,', 'I', 'Am', 'ROB', 'ALSOD'] |