programmer4027

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

分类:

技术点:

相关文章: