Python實現(xiàn)字符串中某個字母的替代功能
今晚想實現(xiàn)這樣一個功能:將輸入字符串中的字母 “i” 變成字母 “p”。當(dāng)時想的很簡單,直接用for循環(huán)遍歷,然后替代,出問題的代碼如下:
name = input('隨便輸入一堆字符吧...')
#name = list(name)
name = "".join(name)
j = 0
for i in range(len(name)):
if name[i] == 'i':
name[i] = 'p'
j = j + 1
i = i + 1
print("".join(name))
if j == 0:
print('字符串里沒有字母i ......')
當(dāng)時筆者想的是挺好,for循環(huán)遍歷,然后替代,順便再把字符 “i” 出現(xiàn)的次數(shù)用變量 j 表示出來,結(jié)果呢,一執(zhí)行就出現(xiàn)了這樣一個錯誤:
Traceback (most recent call last): File "<ipython-input-4-0705a4a9133b>", line 6, in <module> name[i] = 'p' TypeError: 'str' object does not support item assignment
為什么呢,我 百度了一下,是因為這個:
輸入的name,是字符串,用type函數(shù)驗證后,顯示的確是str類型。筆者也意識到了這個問題,想用 name = “”.join(name) 來改變數(shù)據(jù)類型,但我沒有想到的是,剛才提到的 name = “”.join(name) 這一行,**
是將list轉(zhuǎn)變成字符串str的?。?!
**
too young too simple, sometimes too naive。。。。
因此,真正需要解決這個問題,需要把str字符串類型轉(zhuǎn)變成list列表類型,就是需要list函數(shù)。 即:
用name = list(name) 代替 name = “”.join(name)
于是乎,問題解決,KO!
學(xué)到了,字符串不能用for循環(huán)的方式直接遍歷替代,如果想進行字符元素的替換,需要用 list() 函數(shù)進行轉(zhuǎn)換,變成 list 類型
總結(jié)
以上所述是小編給大家介紹的Python實現(xiàn)字符串中某個字母的替代功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
python包裝和授權(quán)學(xué)習(xí)教程
包裝是指對一個已經(jīng)存在的對象進行系定義加工,實現(xiàn)授權(quán)是包裝的一個特性,下面這篇文章主要給大家介紹了關(guān)于python包裝和授權(quán)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06
python中數(shù)組array和列表list的基本用法及區(qū)別解析
大家都知道數(shù)組array是同類型數(shù)據(jù)的有限集合,列表list是一系列按特定順序排列的元素組成,可以將任何數(shù)據(jù)放入列表,且其中元素之間沒有任何關(guān)系,本文介紹python中數(shù)組array和列表list的基本用法及區(qū)別,感興趣的朋友一起看看吧2022-05-05
使用tensorflow保存和恢復(fù)模型saver.restore
這篇文章主要介紹了使用tensorflow保存和恢復(fù)模型saver.restore方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
Python獲取和設(shè)置代理的動態(tài)IP的方式
在網(wǎng)絡(luò)世界中,代理和動態(tài)IP是非常常見的概念,尤其對于需要大規(guī)模訪問網(wǎng)站或者需要隱藏真實IP地址的應(yīng)用程序來說,更是必不可少的工具,本文將給大家介紹如何使用編程技術(shù)來實現(xiàn)動態(tài)IP的設(shè)置和管理,需要的朋友可以參考下2024-05-05

