我试图从较大的字符串中删除一组字符。以下是我尝试过的内容:
string = 'aabc'
remove = 'ac'
for i in remove:
string.replace(i, '', 1)
print(string)
当我运行它时,我一直收回原来的字符串。变量i
正在获取字符' a'然后' c。如果我string.replace('a', '', 1)
,替换功能对我有用。为什么这不起作用或者有更简单的方法吗?
答案 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'