专业编程基础技术教程

网站首页 > 基础教程 正文

Python必懂知识点:连接字符串,到底用+还是join

ccvgpt 2024-09-08 12:44:55 基础教程 13 ℃

都说不管白猫还是黑猫,能抓到老鼠的都是好猫,但是如果一个抓的快,一个抓的慢呢?

第一阶段

Python必懂知识点:连接字符串,到底用+还是join

记得我刚学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小镇”,发现更多干货知识!

最近发表
标签列表