python rstrip 的迷惑行为
在项目中,我需要把字符串末尾的一部分去掉,类似截断,我用ide的随笔提示,发现了rstrip这个方法,然后我试了下,满足我的需求,但在测试过程中,我发现了rstrip的一些行为很让我迷惑。
开始我是这么写的
def rstrip_1(item,end_with):
if item.endswith(end_with):
return item.rstrip(end_with)
# 输出 11111 满足预期
print(rstrip_1("1111aa", "aa"))
# 输出空,不满足预期
print(rstrip_1("1111aa", "1aa"))
我发现第一个case可以满足预期,但是第二个不满足,输出的是空,我chat-gpt了一下,发现rstrip会把参数作为字符集合,而不是字符串序列,我觉得gpt讲的挺清楚的,大家看下gpt的原文,115_5A-1是我当时的一个测试的case。
如果要满足我的需求,实现起来也很简单,后来我改成了这样
def rstrip_str(item, end_with):
if item.endswith(end_with):
temp = item[:-len(end_with)]
return temp
原文地址:https://blog.csdn.net/dydyswr/article/details/144359911
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!