多于2个字符串的拼接,禁止使用“+”,而应该用join

在python效率的讨论问题中字符串的连接效率有提过,多数建议使用join来代替"+"进行字符串连接

python中一切皆对象 字符串对象就是c api中得stringobject.c看python源码的objects文件可以找到

1."+"。使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去,试想一下,如果是n个字符串相连  那么会开辟n-1次内存,是比较耗费资源的

2.对于使用join函数 "".join([a,b])   会调用string_join函数  会计算列表的长度  一次分配一块内存然后拷贝,所以n个字符串相连 开辟内存的次数是1次

所以如果只有2个相连效率区别不大  但是数据多了就会有问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值