字符串操作
Python有简单易用的字符串和文本处理功能,大部分文本运算都直接做成了字符串对象的内置方法。对于更为复杂的模式匹配和文本操作,则可能需要用到正则表达式。
字符串对象方法
以逗号分隔的字符串可以用split拆分成数段
In [4]: val='a,bc,c, gudio'
In [5]: val.split(',')
Out[5]: ['a', 'bc', 'c', ' gudio']
In [6]: val='a,bc ,c, gudio'
In [7]: val.split(',')
Out[7]: ['a', 'bc ', 'c', ' gudio']
split常常结合strip(用于修剪空白符(包括换行符))一起使用
In [8]: pieces=[x.strip() for x in val.split(',')]
In [9]: pieces
Out[9]: ['a', 'bc', 'c', 'gudio']
利用加法,可以将这些子字符串以双冒号分隔符的形式连接起来
In [13]: first,second,third,four=pieces
In [14]: first +'::'+ second +'::'+ third +'::'+four
Out[14]: 'a::bc::c::gudio'
向字符串"::"的join方法传入一个列表或元组
In [15]: '::'.join(pieces)
Out[15]: 'a::bc::c::gudio'
检测子串的最佳方式是利用Python的in关键字(还可以使用index和find)
In [16]: 'guido' in val
Out[16]: False
In [17]: 'gudio' in val
Out[17]: True
In [18]: val.index(',')
Out[18]: 1
In [19]: val.find(':')
Out[19]: -1
In [20]: val.find('bc')
Out[20]: 2
In [21]: val.find('c')
Out[21]: 3
In [22]: val.index('c')
Out[22]: 3
注意find和index的区别:如果找不到字符串,index将会引发一个异常(而不是返回-1)
In [23]: val.index(':')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in ()
----> 1 val.index(':')
ValueError: substring not found
c