1. 程式人生 > 程式設計 >Python實現字串中某個字母的替代功能

Python實現字串中某個字母的替代功能

今晚想實現這樣一個功能:將輸入字串中的字母 “i” 變成字母 “p”。當時想的很簡單,直接用for迴圈遍歷,然後替代,出問題的程式碼如下:

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 ......')

當時筆者想的是挺好,for迴圈遍歷,然後替代,順便再把字元 “i” 出現的次數用變數 j 表示出來,結果呢,一執行就出現了這樣一個錯誤:

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函式驗證後,顯示的確是str型別。筆者也意識到了這個問題,想用 name = “”.join(name) 來改變資料型別,但我沒有想到的是,剛才提到的 name = “”.join(name) 這一行,**

是將list轉變成字串str的!!!

**
too young too simple, sometimes too naive。。。。

因此,真正需要解決這個問題,需要把str字串型別轉變成list列表型別,就是需要list函式。 即:

用name = list(name) 代替 name = “”.join(name)

於是乎,問題解決,KO!

學到了,字串不能用for迴圈的方式直接遍歷替代,如果想進行字元元素的替換,需要用 list() 函式進行轉換,變成 list 型別

總結

以上所述是小編給大家介紹的Python實現字串中某個字母的替代功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!

如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!