python字符串操作

python字符串处理功能很强大,可以很方便的对字符串进行查找、替换、分割、拼接等。

python字符串本身具有的一些属性就可以完成基本的操作。通过dir()函数能够查看一个模块所具有的属性。

>>> s = "abcd"
>>> dir(s)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']


通过find搜索某字符(串),如果找到,则返回该字符(串)首个字符的下标,否则,返回-1。可以利用该方法截取字符串。

>>> s = "abcd1234"
>>> s.find("s")
-1
>>> s.find("1")
4
>>> index = s.find("1")
>>> s[index:]
'1234'

 

相对于find,index则返回子字符串首次出现的下标,如果没有找到则抛出异常。

replace用来替换字符,字符串中凡是相同的字符串都会被替换,但是原字符串并不会改变。

>>> s = "abc1def1ghi1"
>>> s.replace("1", "&&&")
'abc&&&def&&&ghi&&&'
>>> s
'abc1def1ghi1'


split用来分割字符串,分割的依据由输入字符参数决定,得到的是一个list。如果字符串不满足分割条件,则结果依旧是一个list,里面包含一个元素,即原字符串。如果没有输入参数,则是按照空格对字符串进行分割。

>>> s = "abc,123,def,***,,,,"
>>> s.split(",")
['abc', '123', 'def', '***', '', '', '', '']
>>> s.split("abc")
['', ',123,def,***,,,,']
>>> s.split("333")
['abc,123,def,***,,,,']
>>> s = "abc def ghi"
>>> s.split()
['abc', 'def', 'ghi']


与split相反,join用来拼接字符串。最前面的字符是连接符,如果为空则将字符串直接连接。

>> s
'abc def ghi'
>> list1 = s.split()
>>> list1
['abc', 'def', 'ghi']
>>> ''.join(list1)
'abcdefghi'
>>> '+'.join(list1)
'abc+def+ghi'


另外,python还有一个模块re,该模块是正则表达式匹配模块,其中的search,split,sub同样能够完成字符串的查找、分割和替换。如果找到,search函数返回的是一个对象,否则为None。re模块的功能要强大很多,因为它可以通过正则表达式限定匹配的条件。

>>> import re
>>> s = "123,456,789"
>>> re.split(",", s)
['123', '456', '789']
>>> re.sub(",", "-", s)
'123-456-789'
>>> re.search("456", s)
<_sre.SRE_Match object at 0x01272598>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章