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之有容乃大的list(1)
Sep 14 Python
python网络编程实例简析
Sep 26 Python
用Python展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
python算法表示概念扫盲教程
Apr 13 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
详解python中index()、find()方法
Aug 29 Python
Python中的四种交换数值的方法解析
Nov 18 Python
Python实现AI自动抠图实例解析
Mar 05 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
vue使用keep-alive实现数据缓存不刷新
2017/10/21 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
python实现ipsec开权限实例
2014/11/11 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
python生成二维码的实例详解
2017/10/29 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
python logging模块的使用总结
2019/07/09 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
浅谈Python协程
2020/06/17 Python
python openCV自制绘画板
2020/10/27 Python
Python中生成ndarray实例讲解
2021/02/22 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
世界经理人咨询有限公司面试
2014/09/23 面试题
心理健康心得体会
2014/01/02 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
母亲节演讲稿
2014/05/27 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
银行资信证明
2015/06/17 职场文书
2019个人半年工作总结
2019/06/21 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python