python 去除字符串的标点符号 用_Python必懂知识点:连接字符串,到底用+还是join...

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

4ab76b49426c59567a23a96056c804fb.png

第一阶段

记得我刚学Python的时候,就是用+操作符来连接字符串的,反正和join()方法得到的结果都一样,干嘛不用简单点的呢?

a = 'o'b = 'k'c = a+bd = ''.join([a, b])print(c)  # okprint(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 timeitprint(timeit('test1()', 'from __main__ import test1'))# 0.42002649999999997print(timeit('test2()', 'from __main__ import test2'))# 0.19338939999999993

可以看到,使用join()方法耗时更短,如果strList列表中的元素再多点,那么二者的耗时差别会进一步放大。

究其原因是因为,每用一次+操作符都要申请一个新的内存空间,也就是说,把hello中的五个字符连接起来,需要执行四次+操作,共申请了四次内存空间,所以比较慢。

而使用join()方法,则是先计算共需多少内存空间,然后一次性申请。


关注微信公众号“Python小镇”,发现更多干货知识!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值