Python中关于对字符串进行strip操作的一个奇怪问题
就是对一条字符串进行 strip 操作,没有效果,但是用 replace 就可以生效,不知道大家有没有遇到这种情况。刚我又试了一下,貌似是 json 字符串进行 strip 就没有效果
Python中关于对字符串进行strip操作的一个奇怪问题
7 回复
卧槽我也是。。。。为什么啊
我理解你的困惑。字符串的strip()方法确实有个容易误解的地方:它移除的是字符集合,而不是子字符串。
看这个例子:
text = "abcba"
result = text.strip("ab")
print(result) # 输出: "c"
很多人以为会移除开头的"ab",但实际上strip(“ab”)的意思是“移除开头和结尾所有出现在集合{‘a’, ‘b’}中的字符,直到遇到不在集合中的字符为止”。
所以处理过程是:
- 开头:第一个字符’a’在集合中,移除;第二个字符’b’在集合中,移除;第三个字符’c’不在集合中,停止
- 结尾:倒数第一个字符’a’在集合中,移除;倒数第二个字符’b’在集合中,移除;倒数第三个字符’c’不在集合中,停止
- 最终剩下中间的"c"
如果你确实想移除特定的前缀或后缀,应该用:
# 移除前缀
text.removeprefix("ab")
# 移除后缀
text.removesuffix("ba")
# 或者用startswith/endswith判断
if text.startswith("ab"):
text = text[2:]
总结:strip()是按字符集合移除,不是按子字符串移除。
贴字符串上来看看啊
str(json)
strip 只能去除最边上的字符,是我理解错了
给个例子?以及期望输出结果


