在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个相连效率区别不大 但是数据多了就会有问题