python中字符串的rstrip()方法

今天在刷Bite 105. Slice and dice时遇到的一个问题,判断一个字符串是否以'.'或者'!'结尾,如果以这两个字符结尾,则去除这两个字符。
自己写的函数:

results = []
    text_list = text.split('\n')
    print(text_list)
    for line in text_list:
        if line:
            new_line = line.strip()
            if new_line[0] in ascii_lowercase:
                line_list = new_line.split(' ')
                if line_list[-1][-1] != '.' and line_list[-1][-1] != '!':
                    results.append(line_list[-1])
                else:
                    results.append(line_list[-1][0:-1])
    return results

可以看到,在判断和去除这两个字符的时候,用了比较笨的方法,就是直接取字符串的[0:-1],后来查资料发现,python字符串中提供了rstrip()方法可以直接实现该功能,修改后的代码如下:

 results = []
    for line in text.strip().split('\n'):
        line = line.strip()

        if line[0] not in ascii_lowercase:
            continue
        words = line.split()

        last_word_stripped = words[-1].rstrip('!.')
        results.append(last_word_stripped)

    return results

查看了该方法的实现:

    def rstrip(self, *args, **kwargs): # real signature unknown
        """
        Return a copy of the string with trailing whitespace removed.
        
        If chars is given and not None, remove characters in chars instead.
        """
        pass

发现如果没有给该方法传参数,该方法会默认去掉字符串结尾的空格,如果传参了,就会去掉字符串中以传参结尾的。
其实该练习中,还有ascii_lowercase值得注意,可以用来判断是否为小写字母!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值