koreabao 发表于 2022-3-12 13:32:15

关于strip()方法的使用

各位大神好:

shopping_mall = 'www.amazon.com'
shopping_mall_1 = shopping_mall.strip('.wcom')
print(shopping_mall_1)

结果为
amazon

但是如果我想找出来

shopping_mall = 'www.taobao.com'
shopping_mall_1 = shopping_mall.strip('.wcom')
print(shopping_mall_1)

结果为

taoba

这种情况我想打印出来 taobao
应该如何做呢?

谢谢各位大神

ba21 发表于 2022-3-12 13:36:11

多简单的东西,想复杂了
>>> shopping_mall = 'www.taobao.com'
>>> shopping_mall_1 = shopping_mall.split('.')
>>> print(shopping_mall_1)
['www', 'taobao', 'com']
>>> shopping_mall_1 = shopping_mall.split('.')
>>> print(shopping_mall_1)
taobao

koreabao 发表于 2022-3-12 13:38:45

ba21 发表于 2022-3-12 13:36
多简单的东西,想复杂了
>>> shopping_mall = 'www.taobao.com'
>>> shopping_mall_1 = shopping_mall.sp ...

原来可以这样, 那可以用strip()来实现吗?

ba21 发表于 2022-3-12 13:40:18

koreabao 发表于 2022-3-12 13:38
原来可以这样, 那可以用strip()来实现吗?

想想也不可能吧。

koreabao 发表于 2022-3-12 13:44:13

ba21 发表于 2022-3-12 13:40
想想也不可能吧。

那strip()这种方法
一般在什么情况下使用呢?
能否给一一个例子呢?谢谢

wp231957 发表于 2022-3-12 14:41:52

koreabao 发表于 2022-3-12 13:44
那strip()这种方法
一般在什么情况下使用呢?
能否给一一个例子呢?谢谢

strip是删除的意思

阿奇_o 发表于 2022-3-12 15:40:11

从你的两个例子,其实就可以看出 'xyabz123z'.strip('xyz')是 按指定字符集 删除左右两端的 字符 (默认是删除左右两端的空格符)
第二个例子之所以结果是 taoba , 那是因为 bao 的 'o'也是"在右边"且属于你所指定的'.wcom'字符集,所以会被删除,tao的'o'因为是"在中间",不是strip()所能操作的范围,所以没有被删除。

换句话说,strip()是分别从左右两端开始搜索和匹配,匹配上了就删除,一旦没匹配上就停止。

由此,你甚至可以自己实现一个同样功能的函数,如:
>>> def myStrip(s, char=' '):
        ls = list(s)
        tmp_ls = ls[:]
        for c in tmp_ls:
                if c in char:
                        ls.remove(c)
                else:
                        break
       
        lsr = ls[::-1]
        tmp_lsr = lsr[:]
        for c in tmp_lsr:
                if c in char:
                        lsr.remove(c)
                else:
                        break
               
        return ''.join(lsr[::-1])

>>> myStrip(s='www.taobao.com ',)
'www.taobao.com'
>>> myStrip(s='www.taobao.com ', char='.w')
'www.taobao.com '
>>> myStrip(s=' www.taobao.com ', char=' .w')
'taobao.com'
>>> myStrip(s=' www.taobao.com ', char=' .wcom')
'taoba'
>>>

koreabao 发表于 2022-3-13 10:25:37

阿奇_o 发表于 2022-3-12 15:40
从你的两个例子,其实就可以看出 'xyabz123z'.strip('xyz')是 按指定字符集 删除左右两端的 字符 (默认 ...

谢谢, 还没学到函数, 继续努力谢谢大神

qq1151985918 发表于 2022-3-14 07:24:56

koreabao 发表于 2022-3-12 13:38
原来可以这样, 那可以用strip()来实现吗?

shopping_mall = 'www.taobao.com'
shopping_mall_1 = shopping_mall.strip('wcom').strip('.')
print(shopping_mall_1)

koreabao 发表于 2022-3-17 20:48:19

qq1151985918 发表于 2022-3-14 07:24
shopping_mall = 'www.taobao.com'
shopping_mall_1 = shopping_mall.strip('wcom').strip('.')
print( ...

太感谢了!!
页: [1]
查看完整版本: 关于strip()方法的使用