使用 python 将字符串中的某些单词大写

capitalizing some of words in a string using python

actual code I wrote

所以这是我的练习,我有一个列表a = [0, 2, 4]和一个字符串b = 'this is a sample string',问题是根据列表[中给出的位置将b中的单词大写=15=] 这样输出就是“This is A sample String”。我是这样解决的:

a = [0, 2, 4]

b = 'this is a sample string'

b1 = b.split(' ')

print(b1)

#output is ['this', 'is', 'a', 'sample', 'string']

for x in a:
    b1[x] = b1[x].capitalize()

print(b)

# output is=> ['This', 'is', 'A', 'sample', 'String']

b2 = ' '.join(map(str,b))

print(b2)

# output is=> "This is A sample String"

我的问题是:这个修改可以用更小的代码来完成吗?提前致谢

您可以使用带有 enumerate 的列表比较来检查 a 中是否存在索引。

res = ' '.join(i.capitalize() if idx in a else i for idx, i in enumerate(b.split()))

输出

This is A sample String