像下面这样的字符串操作是否在 python 中使用了额外的 space?

Does String operation like below uses extra space in python?

如果我用下面的代码从字符串S中去掉spaces,是否会被认为是使用了额外的space/memory?给定 'S' 个长度为 'l' 的字符串。

int n = l
while i < n
    if S[i] == " ":
        S = S[0:i] + S[i+1:]
    n = len(S)
print "the new string ", S

编辑:这只是一个示例代码。请不要评论它的复杂性 and/or 删除 spaces 的正确方法 :)。这里的上下文是,在解决一个算法设计问题时,涉及到一些字符串操作,有使用extra space的限制。我想知道这样的操作是否使用了额外的 memory/space。

每次您执行类似 a[b:c] 的操作时,Python 都会创建一个新对象。所以是的,您正在使用额外的 space。我建议像这样使用 replace() 方法:

S.replace(" ", "")

它将一次性删除所有 space。

顺便说一句,您没有在代码中递增 i 并且 while 语句中缺少 :