【python】"join"和"+"有什么区别?

python编程拼接字符串,经常用join和+,它俩拼接字符串的结果是一样的,举个例子:

但是: join连接效率 > 操作符+连接效率
举例:将999999个“atiaisi”拼接起来
运行结果:

可以明显看出join执行速度比+快很多,效率提升了大概190倍。
原因:字符串是不可变的对象,就不在字符串本身做文章了,那就另外开辟空间。
+号在拼接字符串的时候,会先开辟一块空间,把+号左边的字符串和+号右边的字符串合起来放在新开辟的空间内,这样有几个+号,就会开辟几次空间。

join拼接字符串也需要开辟空间,但是会提前算好总共需要开辟多大的空间,一次性把内存申请好,然后把所有的字符串合起来放在这个新的空间中,这样就不用频繁申请空间了。

总结:
1、优先使用join拼接字符串。数据量越大,效率差异越明显。
2、从内存消耗上来看,+操作符消耗的内存要比join消耗的内存大。多在中间临时生成的字符串对象占用的内存。

以上是自己根据网上资料总结和扩展的,了解的不深,如果哪些知识点有误,欢迎指正~
