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>

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