为什么这个Python替换功能不起作用?

时间:2014-11-13 18:23:21

标签: python string replace

我试图从较大的字符串中删除一组字符。以下是我尝试过的内容:

string = 'aabc'
remove = 'ac'
for i in remove:
    string.replace(i, '', 1)
print(string)

当我运行它时,我一直收回原来的字符串。变量i正在获取字符' a'然后' c。如果我string.replace('a', '', 1),替换功能对我有用。为什么这不起作用或者有更简单的方法吗?

4 个答案:

答案 0 :(得分:5)

字符串在python中是不可变的,因此string.replace()不会改变字符串;它返回一个带有替换的新字符串。

试试这个:

string = string.replace(i, '', 1)

答案 1 :(得分:2)

replace返回一个新字符串。

python中的字符串是不可变的。

因此,您必须指定返回值:

string_new = "ABCD".replace("A","Z")

答案 2 :(得分:1)

将生成一个新字符串,因为字符串是不可变的......

试试这个 -

string = 'aabc'
remove = 'ac'
for i in remove:
    result = string.replace(i, '', 1)
print(result)

答案 3 :(得分:0)

由于字符串是不可变的,因此只能replace使用string.replace()。 更好的方法是使用set

>>> s='aabcc'
>>> s=''.join(set(s))
'acb'