str.replace是您要执行的操作错误的函数(除了使用不正确之外)。您想用空格代替集合的任何字符,而不是用单个空格代替整个集合(后者是replace的作用)。您可以使用以下翻译:
removeSpecialChars = z.translate ({ord(c): " " for c in "!@#$%^&*()[]{};:,./<>?\|`~-=_+"})
这将创建一个映射,该映射将特殊字符列表中的每个字符映射到一个空格,然后在字符串上调用translate(),将特殊字符集中的每个单个字符替换为一个空格。