1. 程式人生 > >python 中join()函式strip() 函式和 split() 函式的詳解及例項

python 中join()函式strip() 函式和 split() 函式的詳解及例項

1、join()函式

Python中有join()和os.path.join()兩個函式,具體作用如下:

join(): 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成一個新的字串

語法: ‘sep’.join(seq)

引數說明
sep:分隔符。可以為空
seq:要連線的元素序列、字串、元組、字典
上面的語法即:以sep作為分隔符,將seq所有的元素合併成一個新的字串

返回值:返回一個以分隔符sep連線各個元素後生成的字串

os.path.join(): 將多個路徑組合後返回

語法: os.path.join(path1[,path2[,…]])

返回值:將多個路徑組合後返回

注:第一個絕對路徑之前的引數將被忽略

#對序列進行操作(分別使用' '與':'作為分隔符)
  
>>> seq1 = ['hello','good','boy','doiido']
>>> print ' '.join(seq1)
hello good boy doiido
>>> print ':'.join(seq1)
hello:good:boy:doiido
  
  
#對字串進行操作
  
>>> seq2 = "hello good boy doiido"
>>> print ':'.join(seq2)
h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
  
  
#對元組進行操作
  
>>> seq3 = ('hello','good','boy','doiido')
>>> print ':'.join(seq3)
hello:good:boy:doiido
  
  
#對字典進行操作
  
>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
>>> print ':'.join(seq4)
boy:good:doiido:hello
  
  
#合併目錄
  
>>> import os
>>> os.path.join('/hello/','good/boy/','doiido')
'/hello/good/boy/doiido'

2,Python strip()函式 介紹

函式原型

宣告:s為字串,rm為要刪除的字元序列

s.strip(rm) 刪除s字串中開頭、結尾處,位於 rm刪除序列的字元

s.lstrip(rm) 刪除s字串中開頭處,位於 rm刪除序列的字元

s.rstrip(rm) 刪除s字串中結尾處,位於 rm刪除序列的字元

注意:

(1)當rm為空時,預設刪除空白符(包括’\n’, ‘\r’, ‘\t’, ’ ')

(2)這裡的rm刪除序列是隻要邊(開頭或結尾)上的字元在刪除序列內,就刪除掉。

例如,

a = ’ 123’
a
’ 123’
a.strip()
‘123’

(2)這裡的rm刪除序列是隻要邊(開頭或結尾)上的字元在刪除序列內,就刪除掉。

例如,

a = ‘123abc’
a.strip(‘21’)
‘3abc’
a.strip(‘12’)
‘3abc’

3, python split()函式 介紹

說明:

Python中沒有字元型別的說法,只有字串,這裡所說的字元就是隻包含一個字元的字串!!!

這裡這樣寫的原因只是為了方便理解,僅此而已。

(1)按某一個字元分割,如‘.’

str = (‘www.google.com’)
print str
www.google.com
str_split = str.split(’.’)
print str_split
[‘www’, ‘google’, ‘com’]
(2)按某一個字元分割,且分割n次。如按‘.'分割1次

str_split = str.split(’.’,1)
print str_split
[‘www’, ‘google.com’]
(3)split()函式後面還可以加正則表示式,例如:

str_split = str.split(’.’)[0]
print str_split
www
split分隔後是一個列表,[0]表示取其第一個元素;

str_split = str.split(’.’)[::-1]
print str_split
[‘com’, ‘google’, ‘www’]
str_split = str.split(’.’)[::]
print str_split
[‘www’, ‘google’, ‘com’]
按反序列排列,[::]安正序排列

str = str + ‘.com.cn’
str
www.google.com.com.cn
str_split = str.split(’.’)[::-1]
print str_split
[‘cn’, ‘com’, ‘com’, ‘google’, ‘www’]
str_split = str.split(’.’)[:-1]
print str_split
[‘www’, ‘google’, ‘com’, ‘com’]
從首個元素開始到次末尾,最後一個元素刪除掉。

split()函式典型應用之一,ip數字互換:

ip ==> 數字

ip2num = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split(’.’)[::-1])])
ip2num(‘192.168.0.1’)
3232235521

數字 ==> ip # 數字範圍[0, 255^4]

num2ip = lambda x: ‘.’.join([str(x/(256**i)%256) for i in range(3,-1,-1)])
num2ip(3232235521)
‘192.168.0.1’
最後,python怎樣將一個整數與IP地址相互轉換?
import socket
import struct
int_ip = 123456789
socket.inet_ntoa(struct.pack(‘I’,socket.htonl(int_ip)))#整數轉換為ip地址
‘7.91.205.21’
str(socket.ntohl(struct.unpack(“I”,socket.inet_aton(“255.255.255.255″))[0]))#ip地址轉換為整數
‘4294967295’