常用的join方法用来将列表或元祖中包含的多个字符串连接成一个字符串
newstr = str.join(iterable)
newstr:表示合并后生成的新字符串;
str:用于指定合并时的分隔符;如空格、逗号等
iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。
str2 = ['A', 'C', 'E'] print("".join(str2)) 输出 A C E
- 字符串拼接+和json方式对比
a = "test1" b = "test2" print(a+b) print("".join([a, b])) 输出 test1test2 test1test2
两种方式在输出结果上一致的,性能上有区别对比如下:
import timeit def plus(strlist): return "".join(strlist) def join(strlist): result = "" for v in strlist: result = result+v return result strlist = ["a1","a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10"] timer1 = timeit.Timer("plus(strlist)", "from __main__ import strlist, plus") timer2 = timeit.Timer("join(strlist)", "from __main__ import strlist, join") time1 = timer1.timeit(number=100000) time2 = timer2.timeit(number=100000) print("join: %f, plus: %f" % (time1, time2)) 输出: join: 0.031420, plus: 0.114786
通过python timeit模块即对代码效率进行检测运行耗时的模块来对比性能,当执行的次数越多时性能差异越明显,分析下原因:
字符串是不可变对象,当使用"+"拼接字符串时,每次执行+便会申请一块的内存,将复制上次计算的结果+本次操作结果到这块内存中,因此+在不断申请内存和复制;
而join连接字符串时,会先计算需要多大内存存放结果,然后一次申请内存将连接的字符串值复制过去;
因此,在连接字符串数组时建议优先使用join;
标签:timeit,join,Python,拼接,plus,内存,字符串,strlist From: https://www.cnblogs.com/Lina-zhu/p/17254415.html