python字符串拼接+和join的区别详解


Posted in Python onDecember 03, 2020

python在进行字符串的拼接时,一般有两种方法,一种是使用+直接相加,另一种是使用join

a = "tests"
b = "teststs"
 
# 使用 + 
c = a + b
 
# 使用join
c = "".join(a,b)

这两种,其实在性能上具有比较大的差别,当然如果拼接的字符串的个数不多,就感受不到这种差别。

先谈谈这两种拼接方式各自的原理吧。

1. 使用 +

首先需要知道的是,在python中字符串属于不可变对象。

当用操作符+连接字符串的时候,由于字符串是不可变对象,其工作原理实际上是这样的:如果要连接如下字符串:S1+S2+S3+.......+SN,执行一次+操作便会在内存中申请一块新的内存空间,并将上一次操作的结果和本次操作的右操作数复制到新申请的内存空间,即当执行S1+S2的时候会申请一块内存,并将S1、S2复制到该内存中,依次类推,这样就要进行N-1次内存空间的申请了,非常影响效率。

2.使用 join

当使用join时,会一开始就计算出所需要的总的内存空间,也就是说只需要进行一次内存空间的申请,相比 使用 + ,效率提升巨大。 

举个栗子

python字符串拼接+和join的区别详解

当依次增加字符串的个数,得到如下的时间对比:

python字符串拼接+和join的区别详解

不过也确实看出,只有当拼接的字符串个数达到较大级别时,才能被我们人为感知到吧,但是性能优化本来就是在多个地方一点点积累起来的。

总结

到此这篇关于python字符串拼接+和join区别的文章就介绍到这了,更多相关python字符串拼接+和join区别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 解析XML文件
Apr 15 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python处理中文标点符号大集合
May 14 Python
Python3.5运算符操作实例详解
Apr 25 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
python模块常用用法实例详解
Oct 17 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
Python读写压缩文件的方法
Jul 30 Python
详解python方法之绑定方法与非绑定方法
Aug 17 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 11 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
python二维图制作的实例代码
Dec 03 #Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 #Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 #Python
用 Django 开发一个 Python Web API的方法步骤
Dec 03 #Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 #Python
python 使用cycle构造无限循环迭代器
Dec 02 #Python
python 使用csv模块读写csv格式文件的示例
Dec 02 #Python
You might like
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
python利用tkinter实现屏保
2019/07/30 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
优秀的自荐信要注意哪些
2014/01/03 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
平安建设汇报材料
2014/12/29 职场文书
确保工程质量承诺书
2015/04/29 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript