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

posted @ 2021-05-06 21:29  弓长无忌  阅读(788)  评论(0编辑  收藏  举报