如何大写列表中字符串的某些索引?

时间:2019-05-22 23:48:21

标签: python capitalization capitalize

我有一个包含多个st的列表。 字符串均以“ *”开头,然后以“ [”开头,中间有空格。像这样:

* [context......

现在我想将“ c”大写。 换句话说,我想将所有字符串的首字母大写。但是因为我先使用符号。 Capitalize()函数将不起作用。

我试图用大写这样的索引:

list = [i[3].capitalize() for i in list]

此输出仅是大写字母。而不是其余的字符串。

4 个答案:

答案 0 :(得分:2)

最简单的方法是使用.title(),它会忽略非字母字符:

>>> my_list = ['* [foo]', '* [bar]']
>>> map(lambda s: s.title(), my_list)
['* [Foo]', '* [Bar]']

或使用列表理解:

>>> [s.title() for s in my_list]
['* [Foo]', '* [Bar]']

答案 1 :(得分:1)

如果它们都是以这种方式开始的,那么我认为这将满足您的要求。

list_ = [i[:3] + i[3:].capitalize() for i in list_]

请注意,您不应将内置关键字list用作变量名(它涵盖了代码中的目的)。

答案 2 :(得分:1)

尝试:-

list1 = [ "* [context......", "* [context1......" ]

for x in list1:

    print(x[:3] + x[3].capitalize() + x[4:])

输出:-

* [Context......
* [Context1......

答案 3 :(得分:1)

下面是一个使用upper()而不是大写的示例。来自here

的引用
test = ['* [context......', '* [bontext......', '* [zontext......']

test = [i[:3] + i[3:4].upper() + i[4:] for i in test]