一分鐘了解Python字符串的Split和Join用法
我們?cè)谑褂胮ython與字符串打交道時(shí),可能遇到需要把字符串分隔成幾個(gè)部分,有時(shí)候也需要把列表內(nèi)的幾個(gè)字符串,合并在一起。python的split和join方法可以很方便的幫我們實(shí)現(xiàn)這些功能。 本文中通過(guò)很多例子來(lái)演示split和join的用法。因?yàn)閜ython中string是不可改變的,但我們可以在不改變?cè)址那闆r下,調(diào)用string的方法來(lái)對(duì)string進(jìn)行操作。
split方法的語(yǔ)法
如果你需要把一個(gè)string分隔成多個(gè)部分,你可以使用split()方法。split的方法作用于一個(gè)string,返回一個(gè)子string的列表list。語(yǔ)法為:
- string>.split(sep,maxsplit)
在上面的語(yǔ)法中:
代表一個(gè)有效的python字符串 是你想要挑選的分隔符seperator。它應(yīng)該指定為一個(gè)string。比如“,”是用逗號(hào)作為分隔符。 分隔符是可選的。省略的情況下默認(rèn)使用whitespaces作為分隔符。 代表你想要分隔的最大次數(shù)。默認(rèn)為-1,即有分隔符的地方都分隔。 - 如果你想把string中以第一個(gè)逗號(hào)分隔,你可以設(shè)置maxsplit=1。你將會(huì)得到兩部分的string,逗號(hào)之前的部分和逗號(hào)之后的所有部分。
- 如果你分隔一次,得到兩個(gè)string。分隔x次,得到x+1個(gè)string。
split舉例
以下面的字符串為例:
- my_string = "老許學(xué)編程的網(wǎng)址是www.ilaoxu.cn"
現(xiàn)在調(diào)用my_string的split方法,sep和maxsplit都不寫(xiě)。
- my_string.split()
- ['老許學(xué)編程的網(wǎng)址是www.ilaoxu.cn']
默認(rèn)是以空格鍵為分隔符,所以得到的還是原來(lái)的字符串,但是在list里面。
如果在“網(wǎng)址”添加一個(gè)空格:
- "老許學(xué)編程的網(wǎng)址 是www.ilaoxu.cn ".split()
得到的結(jié)果是:
- ['老許學(xué)編程的網(wǎng)址', '是www.ilaoxu.cn']
如果是以下字符串,以逗號(hào)分隔的水果:
- my_string = ""橘子,李子,栗子,柿子,梨"",注意string中的逗號(hào)和指定的分隔符中的逗號(hào)的中英文必須一致。
我們現(xiàn)在把分隔符指定為“,”:
- my_string.split(sep=",") 或者 my_string.split(",")
得到的結(jié)果都一樣,每一個(gè)水果都成為列表的一個(gè)項(xiàng),如下:
- ['橘子', '李子', '栗子', '柿子', '梨']
我們現(xiàn)在指定maxsplit這個(gè)參數(shù)為2:
- mystring.split(",",2)
得到的結(jié)果為:
- ['橘子', '李子', '栗子,柿子,梨']
我們來(lái)分析一下結(jié)果:
- 第一個(gè)逗號(hào)在橘子后面,第一次分隔以后,你得到了兩個(gè)string的列表:橘子和剩下的'李子', '栗子', '柿子', '梨'
- 第二個(gè)逗號(hào)在李子后面,第二次分隔以后,你得到了三個(gè)string的列表:橘子,李子和剩下的'栗子,柿子,梨'。
- 到這個(gè)時(shí)候,已經(jīng)達(dá)到了maxsplit的限制,不會(huì)再進(jìn)行分隔了。
- 這也就是為什么我們看到在第二個(gè)逗號(hào)之后的部分都是在一個(gè)string里面(一個(gè)單引號(hào)里面)。 希望你已經(jīng)理解了split的方法和參數(shù)的作用。
join方法的語(yǔ)法
現(xiàn)在你已經(jīng)了解了如何把一個(gè)string分隔成幾個(gè)子string的列表。現(xiàn)在是時(shí)候?qū)W習(xí)如何使用join把幾個(gè)子string合并成一個(gè)string了。 語(yǔ)法如下:
- <sep>.join(<iterable>)
解釋如下:
- iterable指python中可迭代的對(duì)象list[]或tuple()
- sep是指你選擇的分隔符,把子string合并成一個(gè)string。
- 基本上,join方法使用分隔符把所有的子string合并成一個(gè)string。
join舉例
在之前的例子里,你把mystring使用逗號(hào)分隔成一個(gè)子string的列表,我們稱之為my_list。現(xiàn)在我們用join方法把my_list再合并成一個(gè)string。my_list是水果名稱的一個(gè)列表。
- >>> my_string = "橘子,李子,栗子,柿子,梨"
- >>> my_list = my_string.split(",")
- >>> my_list
- ['橘子', '李子', '栗子', '柿子', '梨']
注意我們join的時(shí)候使用的分隔符要作為字符串傳進(jìn)去,否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。
- ,.join(my_list)
- >>> ,.join(my_list)
- File "<stdin>", line 1
- ,.join(my_list)
- ^
- SyntaxError: invalid syntax
使用逗號(hào)把一個(gè)list中的string合并為一個(gè)string,應(yīng)該用“,”而不是,(注意逗號(hào)中英文一致)。
- result = ",".join(my_list)
結(jié)果為:
- >>> result
- '橘子,李子,栗子,柿子,梨'
你可以選擇其他的字符作為分隔符,現(xiàn)在使用三個(gè)下劃線來(lái)合并成一個(gè)新的string
- >>> result = "___".join(my_list)
- >>> result
- '橘子___李子___栗子___柿子___梨'
現(xiàn)在my_list列表['橘子', '李子', '栗子', '柿子', '梨']中的各個(gè)string,現(xiàn)在合并成了一個(gè)string,以___進(jìn)行分隔。 現(xiàn)在你了解了如何使用join來(lái)合并字符串了。
總結(jié)
你學(xué)習(xí)了:
- <string>.split(sep, maxsplit) 以分隔符分隔某個(gè)字符串maxsplit次。
- <sep.join(<iterable>)用分隔符將list或tuple中的項(xiàng)合并成一個(gè)string。 希望你能從本文中得到自己所需要的,nice day!