假设我有这样一个字符串:
第一个月
如果打印字符串中"\t"
的计数,输出如下:print(a.count("\t")) == output = 4
\如果我想在该字符串中的任何给定位置替换"\t"
,我该怎么做?
例如:a.replace("\t", "a") #replacing the (first occurrence?) of "\t?
print(a.count("\t")) == output = 3
但是,"\t"
不会被"a"
替换,因此"\t"
计数仍为4。是否有方法可以做到这一点;最好替换字符串中出现的任何"\t"
?
4条答案
按热度按时间gxwragnw1#
你可以使用正则表达式。这是另一种用特定的模式替换所有出现项的方法
jjhzyzn02#
尝试到使用
expandtabs
,象文本=文本.扩展制表符(制表符大小=4)vddsk6oq3#
正如Michael Butscher所说,
str.replace()
返回一个替换后的新字符串。默认情况下,所有出现的字符串都被替换。制表符不是一个特例。下面的代码应该可以做到这一点:See: https://docs.python.org/3/library/stdtypes.html?highlight=str%20replace#str.replace
khbbv19g4#
感谢您的回复,因为他们真的打开了解决方案的大门。我所做的是转换成一个列表:
然后我可以用索引来替换我需要的
b[0] = "a"
,然后在我完成的时候把它转换回一个str,这符合我的目的,但是有很多方法来处理它,比如如果我想把所有的"\t"
都变成一个“a”,我可以做一个简单的迭代,如下所示:当然,
replace()
函数也可以对字符串格式的数据做同样的处理,但至少在这次迭代中,如果需要的话,我可以添加更多的条件逻辑。