都说不管白猫还是黑猫,能抓到老鼠的都是好猫,但是如果一个抓的快,一个抓的慢呢?
第一阶段
记得我刚学Python的时候,就是用+操作符来连接字符串的,反正和join()方法得到的结果都一样,干嘛不用简单点的呢?
a = 'o'
b = 'k'
c = a+b
d = ''.join([a, b])
print(c) # ok
print(d) # ok
第二阶段
当我需要将列表里面的字符(串)连接起来时...
strList = ['h', 'e', 'l', 'l', 'o']
# 用+操作符
def test1():
result = ''
for i in strList:
result+=i
return result
# 用join()方法
def test2():
return ''.join(strList)
真香,还是join()方法简单
第三阶段
发现join()方法不仅简单,速度还快
from timeit import timeit
print(timeit('test1()', 'from __main__ import test1'))
# 0.42002649999999997
print(timeit('test2()', 'from __main__ import test2'))
# 0.19338939999999993
可以看到,使用join()方法耗时更短,如果strList列表中的元素再多点,那么二者的耗时差别会进一步放大。
究其原因是因为,每用一次+操作符都要申请一个新的内存空间,也就是说,把hello中的五个字符连接起来,需要执行四次+操作,共申请了四次内存空间,所以比较慢。
而使用join()方法,则是先计算共需多少内存空间,然后一次性申请。
关注微信公众号“Python小镇”,发现更多干货知识!