不使用内置方法去除字符串中的空格
我想要创建一个新的字符串,这个字符串里面不包含空格。比如,
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'