以免說我有這樣的字符串:string = "hello world"我只想將實際字母大寫,所以如果我選擇第二個字母,我的輸出應該如下所示:hEllo wold但是,如果我嘗試例如:string[1].upper()我的輸出是:hello world并不是:hEllo wold我不知道為什么...
3 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
這一行:
string[1].upper()
是不是按照你的想法去做。當然,它將 中的值大寫string[1]
,但它會返回一個帶有結果的新字符串!- 因為在 Python 中字符串是不可變的?,F在,您可能會認為這會解決它:
string[1] = string[1].upper()
...但是不,這將失敗,因為再一次 - 字符串是不可變的。您別無選擇,只能創建一個新字符串,并通過一些邏輯來判斷您想要大寫的位置。例如,要將 index = 1 處的值大寫:
''.join(c.upper() if i == 1 else c for i, c in enumerate(string))

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
要僅大寫字符串的一個字母,您必須將字符串從第 n 個位置開始的部分大寫,并將其分配回變量:
string = string[:n] + string[n:].capitalize()

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
在 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))
添加回答
舉報
0/150
提交
取消