def remove_char(s, c): new_s = "" for i in range(len(s)): if s[i] != c: new_s += s[i] return new_s
时间: 2024-05-10 14:14:37 浏览: 66
这个函数的作用是从字符串s中删除指定字符c,并返回删除后的新字符串new_s。但是这个函数的实现有一些问题:
1. 在循环中,每次将s中的字符复制到new_s中时,都需要使用“+=”操作符来连接字符串,这样会导致每次都创建一个新的字符串对象,效率较低。
2. 在每次找到不是指定字符c的字符时,都只将这个字符赋值给new_s,而没有将之前的字符连起来,所以最终返回的新字符串只包含了最后一个不是指定字符c的字符。
下面是一个改进后的函数实现,可以正确地删除指定字符c并返回新字符串new_s:
```
def remove_char(s, c):
new_s = []
for i in range(len(s)):
if s[i] != c:
new_s.append(s[i])
return ''.join(new_s)
```
这个函数使用了列表来存储不是指定字符c的字符,最后使用join方法将它们连接成一个新的字符串返回。这样的实现效率更高,并且可以正确地删除指定字符。
阅读全文