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

How to capitalize certain index of a string in a list?

我有一个包含多个 stings 的列表。 这些字符串都以“*”开头,然后是“[”,中间是 space。像这样:

* [context......

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

我试过的是像这样大写索引:

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

它的输出只是大写字母。而不是字符串的其余部分。

如果他们都是这样开始的,那么我想这会如你所愿。

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

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

尝试:-

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

for x in list1:

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

输出:-

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

这是一个使用 upper() 而不是大写的示例。参考资料来自 here

test = ['* [context......', '* [bontext......', '* [zontext......']

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

最简单的方法是使用 .title() 忽略 non-alphabetical 个字符:

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

或使用列表理解:

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