2017-09-07 151 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

相关问题