# string replace - inefficient due to lots of strings created
orgstring = "apples are-the best -fruits"
mystring = orgstring
while ' ' in mystring:
mystring = mystring.replace(' ','-')
print (mystring)
最好采用以下两种方法之一:使用列表收集所有需要的字符或使用regex解决:
orgstring = "apples are-the best -fruits"
# list iterating appending unless its a duplicate -
mystring = ""
mylist = []
for c in orgstring:
if not mylist or mylist[-1] != '-' or c != '-':
mylist.append(c)
mystring = ''.join(mylist)
print(mystring)
# regex replacement of more then 1 - by only 1 -
import re
mystring = ""
mystring = re.sub("-+","-",orgstring)
print(mystring)
另一种方法是迭代输入字符串,并使用如下计数器检查每个字符
-
是否与另一个字符-
连续:输出:
检查这是否有帮助-
其中
x
是您的string
实现目标的不同方法。使用string.replace是最糟糕的方法,因为会创建很多中间字符串(它们是不可变的)并将其丢弃
最好采用以下两种方法之一:使用列表收集所有需要的字符或使用regex解决:
输出:
相关问题 更多 >
编程相关推荐