python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...
str 提供了如下常用的執(zhí)行查找、替換等操作的方法:
startswith():判斷字符串是否以指定子串開(kāi)頭。
endswith():判斷字符串是否以指定子串結(jié)尾。
find():查找指定子串在字符串中出現(xiàn)的位置,如果沒(méi)有找到指定子串,則返回 -1。
index():查找指定子串在字符串中出現(xiàn)的位置,如果沒(méi)有找到指定子串,則引發(fā) ValueError 錯(cuò)誤。
replace():使用指定子串替換字符串中的目標(biāo)子串。
translate():使用指定的翻譯映射表對(duì)字符串執(zhí)行替換。
如下代碼示范了上面方法的用法:
s = 'crazyit.org is a good site' # 判斷s是否以crazyit開(kāi)頭 print(s.startswith('crazyit')) # 判斷s是否以site結(jié)尾 print(s.endswith('site')) # 查找s中'org'的出現(xiàn)位置 print(s.find('org')) # 8 # 查找s中'org'的出現(xiàn)位置 print(s.index('org')) # 8 # 從索引為9處開(kāi)始查找'org'的出現(xiàn)位置 #print(s.find('org', 9)) # -1 # 從索引為9處開(kāi)始查找'org'的出現(xiàn)位置 print(s.index('org', 9)) # 引發(fā)錯(cuò)誤 # 將字符串中所有it替換成xxxx print(s.replace('it', 'xxxx')) # 將字符串中1個(gè)it替換成xxxx print(s.replace('it', 'xxxx', 1)) # 定義替換表:97(a)->945(α),98(b)->945(β),116(t)->964(τ), table = {97: 945, 98: 946, 116: 964} print(s.translate(table)) # crαzyit.org is α good site
上面代碼中,查找‘org’在 s 字符串中出現(xiàn)的位置,但由于第二個(gè)參數(shù)指定從索引 9 處開(kāi)始查找,這樣在該字符串中無(wú)法找到‘org’,因此這行代碼將會(huì)引發(fā) ValueError 錯(cuò)誤。
從上面程序可以看出,str 的 translate() 方法需要根據(jù)翻譯映射表對(duì)字符串進(jìn)行查找、替換。在上面程序中我們自己定義了一個(gè)翻譯映射表,這種方式需要開(kāi)發(fā)者能記住所有字符的編碼,這顯然不太可能。為此,Python 為由類(lèi)提供了一個(gè) maketrans() 方法,通過(guò)該方法可以非常方便地創(chuàng)建翻譯映射表。
假如定義 a->α、b->β、t->τ 的映射,程序只要將需要映射的所有字符作為 maketrans() 方法的第一個(gè)參數(shù),將所有映射的目標(biāo)字符作為 maketrans() 方法的第二個(gè)參數(shù)即可。例如,直接在交互式解釋器中執(zhí)行如下代碼:
>>> table = str.maketrans('abt','αβτ')
>>> table
{97: 945, 98: 946, 116: 964}
>>> table = str.maketrans('abc','123')
>>> table
{97: 49, 98: 50, 99: 51}
>>>
從上面的執(zhí)行過(guò)程可以看到,不管是自己定義的翻譯映射表,還是使用 maketrans() 方法創(chuàng)建的翻譯映射表,其實(shí)都是為了定義字符與字符之間的對(duì)應(yīng)關(guān)系,只不過(guò)該翻譯映射表不能直接使用字符本身,必須使用字符的編碼而已。
需要指出的是,如果使用 Python 2.x, str 類(lèi)并沒(méi)有 maketrans() 方法,而是由 string 模塊提供 maketrans() 函數(shù),因此程序需要先導(dǎo)入 string 模塊,然后調(diào)用該模塊的 maketrans() 函數(shù)。
下面在 Python 2.x 的交互式解釋器中執(zhí)行如下代碼:
import string
table= string.maketrans('abc','123')
但 Python 2.x 中的翻譯映射表不如 Python 3.x 的翻譯映射表直觀、明了,我們一般不用理會(huì)翻譯映射表的內(nèi)容,只要將翻譯映射表作為 translate() 方法的參數(shù)即可。
Python字符串分割、連接方法
Python 還為 str 提供了分割和連接方法:
split():將字符串按指定分割符分割成多個(gè)短語(yǔ)。
join():將多個(gè)短語(yǔ)連接成字符串。
下面代碼示范了上面兩個(gè)方法的用法:
s = 'crazyit.org is a good site' # 使用空白對(duì)字符串進(jìn)行分割 print(s.split()) # 輸出 ['crazyit.org', 'is', 'a', 'good', 'site'] # 使用空白對(duì)字符串進(jìn)行分割,最多只分割前2個(gè)單詞 print(s.split(None, 2)) # 輸出 ['crazyit.org', 'is', 'a good site'] # 使用點(diǎn)進(jìn)行分割 print(s.split('.')) # 輸出 ['crazyit', 'org is a good site'] mylist = s.split() # 使用'/'為分割符,將mylist連接成字符串 print('/'.join(mylist)) # 輸出 crazyit.org/is/a/good/site # 使用','為分割符,將mylist連接成字符串 print(','.join(mylist)) # 輸出 crazyit.org,is,a,good,site
從上面的運(yùn)行結(jié)果可以看出,str 的 split() 和 join() 方法互為逆操作。split() 方法用于將字符串分割成多個(gè)短語(yǔ),而 join() 方法則用于將多個(gè)短語(yǔ)連接成字符串。
總結(jié)
以上是生活随笔為你收集整理的python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql触发器删除同步_MySQL 触
- 下一篇: mysql大规模读写性能_十招搞定 My