自学内容网 自学内容网

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)!