1. 程式人生 > >python中將指定的字符串轉換為大寫字母並每隔2個字符用空格分割後得到一個新字符串的方法

python中將指定的字符串轉換為大寫字母並每隔2個字符用空格分割後得到一個新字符串的方法

字符串 分割 python time 技術 dal def mage ret

在例子中對指定的字符串:

faa5fbb5fcc5fdd5010200000028000001900000000a002d00000000017d7840000003e800005fa55fb55fc55fd5

使用了三種方法將其轉換為大寫字母並每隔2個字符用空格分割處理後得到一個新字符串,為: 

FA A5 FB B5 FC C5 FD D5 01 02 00 00 00 28 00 00 01 90 00 00 00 0A 00 2D 00 00 00 00 01 7D 78 40 00 00 03 E8 00 00 5F A5 5F B5 5F C5 5F D5

為驗證三種方法的執行效率,對原字符串擴充為其100倍長度,然後執行10000次處理,從其耗時結果上看,第一種方法最慢,第二、三種方法較好。

代碼:

 1 # -*- coding: utf-8 -*-#
2 3 #------------------------------------------------------------------------------- 4 # Name: MySplit 5 # Description: 將指定的字符串轉換為大寫字母並每隔2個字符用空格分割後得到一個新字符串 6 # Author: Administrator 7 # Date: 2018/7/6 8 #-------------------------------------------------------------------------------
9 10 import re 11 import time 12 13 #待分割字符串 14 myStr = faa5fbb5fcc5fdd5010200000028000001900000000a002d00000000017d7840000003e800005fa55fb55fc55fd5 15 #分割後: FA A5 FB B5 FC C5 FD D5 01 02 00 00 00 28 00 00 01 90 00 00 00 0A 00 2D 00 00 00 00 01 7D 78 40 00 00 03 E8 00 00 5F A5 5F B5 5F C5 5F D5 16 17 def mySplit1(str): 18 t=‘‘ 19 for i in range(len(str)/2): 20 t += str[2*i:2*(i+1)] +
21 t = t.upper() 22 return t 23 24 def mySplit2(str): 25 t = str.upper() 26 p = re.compile(.{1,2}) # 匹配任意字符1-2次 27 return .join(p.findall(t)) 28 29 def mySplit3(str): 30 t = str.upper() 31 return .join([t[2*i:2*(i+1)] for i in range(len(t)/2)]) 32 33 print(原始字符串:\n + myStr + \n) 34 print(轉換後字符串:) 35 print(mySplit1: + mySplit1(myStr)) 36 print(mySplit2: + mySplit2(myStr)) 37 print(mySplit3: + mySplit3(myStr)) 38 39 print(u\n耗時測試:) 40 myStr = myStr * 100 41 for f in [mySplit1, mySplit2, mySplit3]: 42 t = time.time() 43 for i in range(10000): 44 f(myStr) 45 print(f.func_name + : + str(time.time()-t) + s)

運行結果如下:

技術分享圖片

python中將指定的字符串轉換為大寫字母並每隔2個字符用空格分割後得到一個新字符串的方法