我可以在 Python 中将字符串中的特定字母大写吗?

以免说我有这样的字符串:

string = "hello world"

我只想将实际字母大写,所以如果我选择第二个字母,我的输出应该如下所示:

hEllo wold

但是,如果我尝试例如:

string[1].upper()

我的输出是:

hello world

并不是:

hEllo wold

我不知道为什么...


侃侃无极
浏览 296回答 3
3回答

汪汪一只猫

这一行:string[1].upper()是不是按照你的想法去做。当然,它将 中的值大写string[1],但它会返回一个带有结果的新字符串!- 因为在 Python 中字符串是不可变的。现在,您可能会认为这会解决它:string[1] = string[1].upper()...但是不,这将失败,因为再一次 - 字符串是不可变的。您别无选择,只能创建一个新字符串,并通过一些逻辑来判断您想要大写的位置。例如,要将 index = 1 处的值大写:''.join(c.upper() if i == 1 else c for i, c in enumerate(string))

哔哔one

要仅大写字符串的一个字母,您必须将字符串从第 n 个位置开始的部分大写,并将其分配回变量:string = string[:n] + string[n:].capitalize()

12345678_0001

在 Python 中,字符串不可修改,因此您指定的操作将不起作用。为了使这项工作,您可以将字符串转换为列表,然后将特定字符转换为大写,然后将结果连接回字符串。sample_str="hello world"sample_list=list(sample_str)                                           sample_list[2]=sample_list[2].upper()print(''.join(str(i) for i in sample_list))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python