字符串方法

1. find 方法

find 方法可以在一个较长的字符串中查找子字符串,并返回子字符串所在位置最左边的索引。如果没有找到则返回-1。

>>> 'Hello,world.Cold enough?'.find('world')
6
>>> title='Hello,world.Cold enough?'
>>> title.find('Hello')
0
>>> title.find('Cold')
12
>>> title.find('enough')
17
>>> title.find('you')
-1
>>> 

1.1 in 和 find 的区别:

相同点:

>>> subject='$$$ get rich now!!! $$$'
>>> '$$$' in subject
True
>>> subject.find('$$$')
0
>>> 'p' in 'python'
True
>>> 'python' .find('p')
0
>>> 'th' in 'python'
True
>>> 'is very' in 'python is very good!'
True
>>> 'python is very good!'.find('is very' )
7
>>> 'wh' in 'python'
False
>>> 'python'.find('wh')
-1
>>> 

不同点:
成员资格方法返回的是布尔值,find方法不返回布尔值,如果返回0,则证明在索引为0的位置找到子字符串。
find 方法可以接收可选的起始点和结束点参数(即第二个和第三个参数),包含第一个索引,不包含第二个索引。

>>> subject='$$$ get rich now!!! $$$'
>>> subject.find('$$$',1)
20
>>> subject.find('!!!')
16
>>> subject.find('!!!',0,16)
-1
>>> 

2. join 方法

用来连接序列连接符字符 . join(序列列表)。


>>> lst=[1,2,3,4]
>>> seq='+'
>>> seq.join(lst)

Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    seq.join(lst)
TypeError: sequence item 0: expected string, int found
>>> lst=['1','2','3','4']
>>> seq.join(lst)
'1+2+3+4'
>>> '++'.join(lst)
'1++2++3++4'
>>> '/'.join(['usr','bin','lib'])
'usr/bin/lib'
>>> print 'C:'+'\\'.join(['usr','bin','lib'])
C:usr\bin\lib
>>> print '\n'.join(['usr','bin','lib'])
usr
bin
lib
>>>    

3. split 方法

将字符串分割成序列,是join方法的逆方法。字符串 . split(分割符),如果不提供分隔符,程序把空格作为分隔符。

>>> '1+2+3+4'.split('+')
['1', '2', '3', '4']
>>> 'usr/bin/lib'.split('/')
['usr', 'bin', 'lib']
>>> 'How are you ?'.split()
['How', 'are', 'you', '?']
>>> 

4. lower 方法

lower 方法返回字符串的小写字母版。如果想编写不区分大小写的代码,如查找用户名时,不论客户输入大小写的用户名,总能在列表中找到。

>>> name='Janny'
>>> lst=['janny','danny','li']
>>> if name.lower() in lst:print 'Found it'

Found it
>>> name='DANNY'
>>> if name.lower() in lst:print 'Found it'

Found it
>>> name='danny'
>>> if name.lower() in lst:print 'Found it'

Found it
>>> 

4.1 title 方法

将所有字符串转换为标题,首字母大写,其他字母小写。

>>> "that's all folks".title()
"That'S All Folks"
>>> 

4.2 string 模块中的 capwords 函数

得到正确首字母大写的标题,冠词小写。

>>> from string import capwords
>>> capwords("that's all folks")
"That's All Folks"
>>>  import string
>>> string.capwords("that's all folks")
"That's All Folks"
>>>  

5. replace 方法

返回某字符串的所有匹配项均被替换之后得到字符串。
字符串.replace(查找,替换)

>>> 'this is a good idea.'.replace('is','was')
'thwas was a good idea.'
>>> 

6. strip 方法

strip()返回去除两侧( 不包括内部)空格的字符串,strip(字符参数)返回去除两侧(不包括内部)参数字符的字符串。

 >>> name='janny '
>>> lst=['janny','danny','li']
>>> if name in lst:print 'Found it'

>>> if name.strip() in lst:print 'Found it'

Found it
>>> '*** hey * what * is * that? *** ' .strip('*?')
' hey * what * is * that? *** '
>>> '*** hey * what * is * that? ***' .strip('*?')
' hey * what * is * that? '
>>> '*** hey * what * is * that? ***' .strip(' *?')
'hey * what * is * that'
>>> 

7. translate 方法

translate 方法也可以替换字符串中的某些部分,但是只处理单个字符,且可以一次处理多个替换,比replace效率高很多。

>>> from string import maketrans
>>> table=maketrans('cs','kz')
>>> len(table)
256
>>> table[97:1 23]
'abkdefghijklmnopqrztuvwxyz'
>>> maketrans('','')[97:123]
'abcdefghijklmnopqrstuvwxyz'
>>>     

string 模块里的 maketrans 函数接受两个参数:两个等长的字符串,表示第一个字符串中的每个字符串都用第二个字符串中相同位置的字符替换。
maketrans(‘cs’,’kz’)
中,把字符 c 替换为 k, 把 s 替换为 z 。
maketrans(”,”)中,为空转换,即为一个普通的字母表。
maketrans 函数创建的转换表可作为 tranlate 的参数。

>>> 'this is a good test'.translate(table)
'thiz iz a good tezt'
>>> 'this is a good test'.translate(table,' ')
'thizizagoodtezt'
>>> 

translate 的第二个参数用来指定需要删除的字符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值