不使用内置方法去除字符串中的空格

1 投票
4 回答
4135 浏览
提问于 2025-04-18 03:55

我想要创建一个新的字符串,这个字符串里面不包含空格。比如,

string1 = "my music is good"

应该变成

joinedstring = "mymusicisgood"   #this is the one i want

一开始我可以通过使用内置的字符串方法来做到这一点

string1 = "my music is good"
joinedstring = string1.replace(" ","")

但现在我想在不使用任何字符串方法的情况下实现同样的效果,这就意味着我得自己写一个函数。我想到了一个办法,就是用一个循环去查找字符串中空格的位置,然后试着删除这些位置的字符,来生成一个新的字符串。

但问题来了,字符串是不可变的,所以像 del string[index] 这样的删除操作是行不通的。请问有什么办法吗?

4 个回答

0

另一种解决方案是使用列表推导式配合过滤器(也就是 if 的部分):

>>> string1 = "my music is good"
>>> "".join([c for c in string1 if c != " "])
"mymusicisgood"
0

如果你需要自己“编写”内置函数,这看起来就像是学校的作业。为了实现这个目标,一个非常简单的函数可以是这样的:

def no_spaces(string1):
    helpstring = ""
    for a in string1:
        if a == " ":
            pass
        else:
            helpstring = helpstring + a
    return helpstring
0

这里有一个可以在你的代码中调用的有效函数:

def remove_space(old_string):
    new_string = ""
    for letter in old_string:
        if not letter == " ":
            new_string += letter
    print new_string # put here return instead of print if you want

if __name__ == '__main__':
    remove_space("there was a time")
2

你不需要使用 import string 来进行替换操作。replace() 是字符串自带的一种方法,可以直接使用:

>>> string1 = "my music is good"
>>> joinedstring = string1.replace(" ","")
>>> joinedstring
'mymusicisgood'

撰写回答