1 #join() 與split()相反,join()方法用來將列表中多個字符串進行連接,並在相鄰兩個字符串之間插入指定字符 2 li=['apple','peach','banana','pear'] 3 sep=',' 4 s=sep.join(li) 5 print(s) #使用逗號作為連接符 6 s1=':'.join(li) #使用冒號作為連接符 7 print(s1) 8 s2=''.join(li) 9 print(s2) 10 #使用split()和join()方法可以刪除字符串中多余的空白字符,如果有連續多個空白字符,只保留一個 11 x='aaa bb c d e fff' 12 print(' '.join(x.split())) 13 14 def equalilent(s1,s2): #判斷兩個字符串在python意義上是否等價 15 if s1 == s2: 16 return True 17 elif ' '.join(s1.split()) == ' '.join(s2.split()): 18 return True 19 elif ''.join(s1.split()) == ''.join(s2.split()): 20 return True 21 else: 22 return False 23 print(equalilent('pip list','pip list')) 24 # True 25 print(equalilent('[1,2,3]','[1,2,3]')) #判斷兩個列表寫法是否等價 26 # True 27 print(equalilent('[1,2,3]','[1,2, 3]')) 28 # True 29 print(equalilent('[1,2,3','[1,2 ,3,4]')) 30 # False 31 '''使用運算符"+"也可以連接字符串,但該運算符設計大量數據的復制,效率非常低,不適合大量長字符串的連接。''' 32 33 import timeit 34 35 #使用列表推導式生成10000個字符串 36 strlist = ['This is a long string that will not keep in memory.' for n in range(10000)] 37 38 #使用字符串對象的join()方法連接多個字符串 39 def use_join(): 40 return ''.join(strlist) 41 42 #使用運算符"+"連接多個字符串 43 def use_plus(): 44 result='' 45 for strtemp in strlist: 46 result = result+strtemp 47 return result 48 49 if __name__=='__main__': 50 #重復運行次數 51 times=1000 52 jointimer = timeit.Timer('use_join()','from __main__ import use_join') 53 print('time for join:',jointimer.timeit(number=times)) 54 # time for join: 0.1647309590189252 55 plustimer = timeit.Timer('use_plus()','from __main__ import use_plus') 56 print('time for plus:',plustimer.timeit(number=times)) 57 # time for plus: 2.045372327003861