2017-09-07 149 views
1

比方說,我有多個字符串:如何在Python中替換多個字符串中的一個子字符串?

string1 = "ab" 
string2 = "db" 
string3 = "eb" 

如何更換同一子在所有這些?假設我需要用「c」替換「b」。我可以確保做到以下幾點,但是有沒有一種簡潔的單線解決方案?

string1 = string1.replace("b", "c") 
string2 = string2.replace("b", "c") 
string3 = string3.replace("b", "c") 
+4

的聲音,我;那麼你可以對字符串中的字符串執行'strings = [string.replace(「b」,「c」)]' – Hamms

回答

3
string1,string2,string3=[string.replace('b','c') for string in [string1,string2,string3]] 

試試這個整潔的列表理解的一行

1

編輯:我忘了重新分配變量返回的字符串,themewhackamadoodle3000打我吧!

有確實是一個簡單的方法來做到這一點,利用for loop像這樣:通過我們的陣列中的每個字符串

string1,string2,string3=[string.replace('b','c') for string in [string1,string2,string3]] 

循環迭代,並取代bÇ

+0

不,它沒有,你沒有保存'string'中返回的值。用變量替換(「b」,「c」)' –

+0

啊,你說得很對,看起來你打我吧!:) – Vallode

1

你可以在班級理解中使用班級和創建班級方法:

class String: 
    def __init__(self, s): 
     self.s = s 
    def replace(self, old, new): 
     return self.s.replace(old, new) 


string1 = "ab" 
string2 = "db" 
string3 = "eb" 
l = [String(i).replace("b", "c") for i in [string1, string2, string3]] 

輸出:像你想你的字符串存儲在像列表中的數據結構,而不是讓他們都作爲單獨的變量

['ac', 'dc', 'ec'] 
+1

在這個例子中使用class的優點是什麼? – kaza

相關問題