python string replace正在错误地删除空格

Col*_*een 3 python string whitespace replace

我有一个方法

def strip_searchname(self, original_name):
    taboo = {" and ", " of ", " at ", " in ", ":", "-", ",", " the ", " "}
    searchname = original_name
    for word in taboo:
        print(searchname)
        searchname = searchname.replace(word, "")
    searchname = re.sub('[^a-zA-Z]', "", searchname)
    searchname= searchname.upper()
    return searchname
Run Code Online (Sandbox Code Playgroud)

(是的,我知道它的一部分是多余的)

第一个.replace似乎正在剥离整个空格字符串,这是我不想要的.为什么是这样?我该如何避免呢?

(例如输出是:

Seattle University
SeattleUniversity
SeattleUniversity
SeattleUniversity
SeattleUniversity
SeattleUniversity
SeattleUniversity
SeattleUniversity
SeattleUniversity
SEATTLEUNIVERSITY
Run Code Online (Sandbox Code Playgroud)

)

DSM*_*DSM 10

我不明白为什么它似乎是在"替换"之前执行"替换",例如,当"of"替换位于列表中的空格之前时.

这不是一个清单.

taboo = {" and ", " of ", " at ", " in ", ":", "-", ",", " the ", " "}
Run Code Online (Sandbox Code Playgroud)

是一个集合的文字.尝试用[和]替换{和}以获得所需的顺序.