strip函数

一、strip函数原型

声明:s为字符串,rm为要删除的字符序列

s.strip(rm)        删除s字符串中开头、结尾处,位于rm删除序列的字符

s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

如下

1
2
3
4
5
6
7
8
>>> a= 'hheloooo goooodbyyyye'
>>> a.strip( 'helo ' )
'goooodbyyyy'
>>> a.strip( 'he' )
'loooo goooodbyyyy'
>>> a.strip( 'o' )
'hheloooo goooodbyyyye'
>>>

从首尾开始找.先从首位找到'h'['h','e','l','o']内把'h'去掉,发现第二个'h'依然还在['h','e','l','o']内再次去掉'h',往后推,发现'e'还在['h','e','l','o'],继续去掉'e',同理一直往下推.

从尾部开始发现'e'['h','e','l','o'],去掉'e',再发现'y'不在['h','e','l','o'],所以就停止了.

 

 

1, rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> a= '    a\n\tbc'
>>> print a
     a
        bc
>>> a.strip()
'a\n\tbc'
>>> a= '  abc'
>>> a.strip()
'abc'
>>> a= '\n\tabc'
>>> a.strip()
'abc'
>>> a= 'abc\n\t'
>>> a.strip()
'abc'
>>>

2,这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> a= '123abc'
>>> a.strip( '21' )
'3abc'
>>> a.strip( '12' )
'3abc'
>>> a.strip( '1a' )
'23abc'
>>> a.strip(cb)
Traceback (most recent call last):
  File  "<stdin>" , line 1,  in  <module>
NameError: name  'cb'  is not defined
>>> a.strip( 'cb' )
'123a'
>>> a.strip( 'bc' )
'123a'
>>>

二、split函数

split是分割函数,将字符串分割成“字符”,保存在一个列表中。

1
2
3
>>> a= 'a b c d'
>>> a. split ()
[ 'a' 'b' 'c' 'd' ]

默认不带参数为空格分割。之所以为双引号的“字符”,因为实际python没有字符的。

1
2
3
>>> b= 'abc efg hij kkj'
>>> b. split ()
[ 'abc' 'efg' 'hij' 'kkj' ]

还可以带参数根据实际需求进行分割

1
2
3
4
5
>>> c= 'name=ding|age=25|job=it'
>>> c. split ( '|' )
[ 'name=ding' 'age=25' 'job=it' ]
>>> c. split ( '|' )[0]. split ( '=' )
[ 'name' 'ding' ]

还可以带上数字参数,表示“切几刀”如:

 

1
2
3
4
5
6
7
8
9
10
11
>>> d= 'a b c d e'
>>> d. split ( ' ' ,1) #以空格“切一刀”,就分成两块了
[ 'a' 'b c d e' ]
>>> d. split ( ' ' ,2)
[ 'a' 'b' 'c d e' ]
>>> d. split ( ' ' ,3)
[ 'a' 'b' 'c' 'd e' ]
>>> d. split ( ' ' ,-1)  #d.split(' ')结果一样
[ 'a' 'b' 'c' 'd' 'e' ]
>>> d. split ( ' ' )
[ 'a' 'b' 'c' 'd' 'e' ]

 


本文出自 “丁同学1990” 博客,请务必保留此出处http://dingtongxue1990.blog.51cto.com/4959501/1675499

<think>好的,用户想了解Python中strip函数的用法。首先,我得回忆一下strip的基本功能。strip()用于去除字符串开头和结尾的指定字符,默认是空白符。那用户可能已经知道基础用法,但也许需要更详细的例子或者特殊情况处理。 接下来,我得组织回答的结构。先介绍基本语法,然后说明参数的作用,默认情况下去除空格。然后举几个例子,比如去除两边的空格、换行符或者特定字符。比如" example "用strip()变成"example"。 然后,可能需要区分lstrip和rstrip的区别,说明它们各自处理左边和右边的字符。例如,处理网址的"http://"时,用lstrip('htp:/')可能会得到意外的结果,需要注意字符顺序无关,是逐个去除直到遇到不在集合中的字符。 还要注意用户可能遇到的常见问题,比如中间字符不会被去除,只有开头和结尾。例如"testexampletest"用strip('test')会变成"example",因为开头和结尾的't','e','s'被去除了,但中间的保留。 另外,需要提醒用户strip只能处理字符级别的去除,不能处理子字符串。比如想去除末尾的"world",需要用replace或者其他方法。这时候举例子说明,避免用户误解。 最后,总结一下使用场景,比如数据清洗时去除多余空格,处理文件读取时的换行符等。确保回答覆盖了基本用法、常见问题、不同方法(lstrip/rstrip)以及注意事项,这样用户能全面理解strip的用法和应用场景。</think>好的,我将逐步解释Python中`strip()`函数的用法: 1. **基本功能** `strip()`用于去除字符串**开头和结尾**的指定字符,默认去除空白符(包括空格、换行符`\n`、制表符`\t`等) 2. **语法格式** $$ \text{字符串.strip([chars])} $$ 其中`chars`是可选参数,表示要删除的字符集合 3. **默认行为示例** ```python s = " Hello World!\t\n" print(s.strip()) # 输出:"Hello World!" ``` 4. **指定删除字符** 当传入字符参数时,会删除开头和结尾**所有在chars中的字符**,直到遇到不在集合中的字符为止: ```python s = "***Hello!***" print(s.strip('*')) # 输出:"Hello!" s = "abc123abcbac" print(s.strip('abc')) # 输出:"123" ``` 5. **左右特定删除** - `lstrip()` 仅处理字符串开头 - `rstrip()` 仅处理字符串结尾 ```python url = "https://www.example.com" print(url.lstrip('htps:/')) # 输出:"www.example.com" ``` 6. **注意事项** - 删除顺序是循环检测,不是按字符顺序删除 - 中间字符不会被删除: ```python s = "testexampletest" print(s.strip('test')) # 输出:"example" ``` - 不能直接删除子字符串,只能删除字符集合: ```python s = "hello world" print(s.strip('world')) # 不会删除"world",而是删除字符w/o/r/l/d # 实际输出:"hello " ``` 常见应用场景:清洗用户输入、处理文件读取内容、去除特殊符号等数据预处理操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值