Python中join()方法用於將序列中的字符串以固定字符串拼接后返回新的字符串
語法為:
str.join(sequence)
參數:
-
sequence --要連接的字符串序列
-
str --連接字符串的間隔字符串
示例1:
a = ['a', 'b', 'c', 'd', 'e']
b = '-'.join(a)
print(b)
結果如下:
該例子中,以-為間隔符,連接字符a、b、c、d、e
示例2:
a = 'How are you!'
b = a.split(' ')
c = [i for i in b if i != '']
d = ' '.join(c)
print(d)
結果如下:
該例子中,先將字符串通過字符' '空格符將字符串分割,再過濾掉其中的空格字符,最后再以空格符將原來的非空格字符串拼接起來
使用Join方法拼接字符串而不是'+'
拼接字符串有兩種方式
-
直接使用'+'拼接,str = str1 + str2
-
使用join方法拼接,''.join([str1,str2])
雖然上面兩種方法都可以實現需求,但性能差異較大,建議使用join方法,下面進行性能比較:
import time
list1 = ['test str' for n in range(1000000)]
start_time = time.time()
a = ''
for i in list1:
a = a + i
end_time = time.time()
print(end_time - start_time)
start_time = time.time()
b = ''.join(list1)
end_time = time.time()
print(end_time - start_time)
結果如下:
可以看到使用加號拼接的速度比使用join方法慢了很多,原因是因為字符串是不可變對象,這就導致使用加號拼接時,每次拼接字符串都會重新分配內存,而join方法只分配一次內存