Python字串操作之字串分割與組合
阿新 • • 發佈:2019-01-01
12、字串的分割和組合
12.1 str.split():字串分割函式
通過指定分隔符對字串進行切片,並返回分割後的字串列表。
語法:
str.split(s, num)[n]
引數說明:
s:表示指定的分隔符,不寫的話,預設是空格(’ ‘)。如果字串中沒有給定的分隔符時,則把整個字串作為列表的一個元素返回。
num:表示分割次數。如果指定了引數num,就會將字串分割成num+1個子字串,並且每一個子字串可以賦給新的變數。
[n]:表示選取第n個分片,n表示返回的list中元素下標,從0開始的。
12.2 os.path.split():路徑檔案分割函式
按照路徑將檔名和路勁分割開,這裡需要引入os包(import os)。
語法:
os.path.split(‘PATH’)
引數說明:
PATH指一個檔案所在的絕對路勁
例項:
1)、split()函式常用的一些例項
#定義一個字串str1
>>> str1 = "3w.gorly.test.com.cn"
#使用預設分隔符分割字串str1
>>> print str1.split()
['3w.gorly.test.com.cn']
#指定分隔符為'.',進行分割字串str1
>>> print str1.split('.')
['3w', 'gorly', 'test', 'com', 'cn']
#指定分隔符為'.',並且指定切割次數為0次
>>> print str1.split('.',0)
['3w.gorly.test.com.cn' ]
#指定分隔符為'.',並且指定切割次數為1次
>>> print str1.split('.',1)
['3w', 'gorly.test.com.cn']
#指定分隔符為'.',並且指定切割次數為2次
>>> print str1.split('.',2)
['3w', 'gorly', 'test.com.cn']
#這種分割等價於不指定分割次數str1.split('.')情況
>>> print str1.split('.',-1)
['3w', 'gorly', 'test', 'com', 'cn']
#指定分隔符為'.',並取序列下標為0的項
>>> print str1.split('.')[0]
3w
#指定分隔符為'.',並取序列下標為4的項
>>> print str1.split('.')[4]
cn
2)、統計字串中出現的單詞個數
>>> str2 = "This is the voa special english health report"
>>> list1 = str2.split(' ')
>>> list1
['This', 'is', 'the', 'voa', 'special', 'english', 'health', 'report']
>>> len(list1)
8
3)、多次連續使用split()函式
例如:將從html程式碼中提取網站地址
>>> s = '<a href="www.test.com">test</a>'
>>> print s.split('"')[1]
www.test.com
>>> print s.split('"')[1].split('.')
['www', 'test', 'com']
4)、使用split()函式去除一些特殊字元
#去掉字串中的換行符\n
>>> str2 = '''hello
... world
... !'''
>>> str2.split('\n')
['hello', 'world', '!']
5)、分割檔案和其路勁
>>> import os
>>> print os.path.split("d:\test\a.txt")
('d:', '\test\x07.txt')
>>> print os.path.split('d:/test/a.txt')
('d:/test', 'a.txt')
>>> print os.path.split('d:\\test\\a.txt')
('d:\\test', 'a.txt')
從上面的結果可以看出,如果我們路勁寫成d:\test\a.txt,是得不到我們想要的結果,必須將再加一個’\’來轉義第二個’\’才行,或者直接寫成d:/test/a.txt這樣。
12.3 str.join(seq):將序列組合成字串函式
語法:s.join(seq)
引數說明:
s:給定的連線符
seq:代表要連線的序列,如list、tuple、str的序列
例項:
1)、普通字串的連線(只能針對字元或字串進行連線)
>>> '-'.join("abdcd")
'a-b-d-c-d'
>>> list1 = ['a','b','c']
>>> ''.join(list1)
'abc'
2)、字串分割函式和字串組合函式組合使用的情況
>>> s = '<a href="www.test.com">test</a>'
>>> print s.split('"')[1]
www.test.com
>>> print s.split('"')[1].split('.')
['www', 'test', 'com']
>>> print '.'.join(s.split('"')[1].split('.'))
www.test.com