Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python .replace仅替换列表中的最后一个字符_Python_String_Replace - Fatal编程技术网

Python .replace仅替换列表中的最后一个字符

Python .replace仅替换列表中的最后一个字符,python,string,replace,Python,String,Replace,我想删除列表中的所有黑名单字符并替换为,但是当代码运行时,在print语句中只替换最后的“黑名单字符” 我想知道如何才能使所有字符都被替换,并且只打印“示例”尝试以下方法: title = 'Example#@@@+||' blacklisted_chars = ['#','|','@','+'] for i in blacklisted_chars: convert = title.replace(i, '') print(convert) # Example#@@@|

我想删除列表中的所有黑名单字符并替换为,但是当代码运行时,在print语句中只替换最后的“黑名单字符”

我想知道如何才能使所有字符都被替换,并且只打印“示例”

尝试以下方法:

title = 'Example#@@@+||'

blacklisted_chars = ['#','|','@','+']

for i in blacklisted_chars:
    convert = title.replace(i, '')
    
print(convert)

# Example#@@@||
说明:由于您将title.replace的结果存储在convert变量中,因此每次迭代都会覆盖它。您需要将replace应用于上一次迭代的结果,该结果可以是具有原始字符串的变量,也可以是包含原始字符串副本的另一个变量(如果希望保持原始值不变)

注意:字符串是可编辑的,因此您也可以通过以下方式获得相同的结果:

title = 'Example#@@@+||'

blacklisted_chars = ['#','|','@','+']

for i in blacklisted_chars:
    title = title.replace(i, '')
    
print(title)
试试这个:

title = 'Example#@@@+||'

blacklisted_chars = ['#','|','@','+']

for i in blacklisted_chars:
    convert = title.replace(i, '')
    
print(convert)

# Example#@@@||
说明:由于您将title.replace的结果存储在convert变量中,因此每次迭代都会覆盖它。您需要将replace应用于上一次迭代的结果,该结果可以是具有原始字符串的变量,也可以是包含原始字符串副本的另一个变量(如果希望保持原始值不变)

注意:字符串是可编辑的,因此您也可以通过以下方式获得相同的结果:

title = 'Example#@@@+||'

blacklisted_chars = ['#','|','@','+']

for i in blacklisted_chars:
    title = title.replace(i, '')
    
print(title)

字符串在python中是不可变的。将新字符串指定为

blacklisted_chars = '#|@+'
此声明后标题保持不变。convert是一个全新的字符串,它缺少i

在下一次迭代中,您将替换不同的i值,但仍然与原始标题不同。所以最后看起来你只是跑了

convert = title.replace(i, '')
您有两个非常相似的选项,这取决于您是否希望保留原始标题

如果这样做,请对其进行另一次引用,并使用结果不断更新该引用,以便每个后续迭代都建立在先前删除的结果的基础上:

convert = title.replace('+', '')
如果您不想保留原始标题,请直接使用该名称:

convert = title
for i in blacklisted_chars:
    convert = convert.replace(i, '')
    
print(convert)
您可以使用以下方法实现类似的结果,而无需显式循环:


字符串在python中是不可变的。将新字符串指定为

blacklisted_chars = '#|@+'
此声明后标题保持不变。convert是一个全新的字符串,它缺少i

在下一次迭代中,您将替换不同的i值,但仍然与原始标题不同。所以最后看起来你只是跑了

convert = title.replace(i, '')
您有两个非常相似的选项,这取决于您是否希望保留原始标题

如果这样做,请对其进行另一次引用,并使用结果不断更新该引用,以便每个后续迭代都建立在先前删除的结果的基础上:

convert = title.replace('+', '')
如果您不想保留原始标题,请直接使用该名称:

convert = title
for i in blacklisted_chars:
    convert = convert.replace(i, '')
    
print(convert)
您可以使用以下方法实现类似的结果,而无需显式循环:


在循环中,将结果保存为convert。每个循环都要替换convert的值。这是否回答了您的问题?在循环中,将结果保存为convert。每个循环都要替换convert的值。这是否回答了您的问题?更新做得很好。当你解释正在发生的事情时会更好。更新做得很好。当你解释发生的事情时会好得多。