Python join()方法
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方法只分配一次内存