fork download
  1. import timeit
  2. import re
  3.  
  4. a=["aa","bb","cc"]
  5. b="111^222^3333^44444"
  6. def f1():
  7. m=b.split("^")
  8. s=''
  9. for i in range(len(a)):
  10. s+=m[i]
  11. s+=a[i]
  12. s+=m[-1]
  13. return s
  14.  
  15. def f2():
  16. m=b.split("^")
  17. s=[]
  18. for i in range(len(a)):
  19. s.append(m[i])
  20. s.append(a[i])
  21. s.append(m[-1])
  22. return "".join(s)
  23.  
  24. def f3():
  25. m=b.split("^")
  26. return "".join(m[i]+a[i] for i in range(len(a)))+m[-1]
  27.  
  28. r=re.compile("\^")
  29. def f4():
  30. s=""
  31. i=0
  32. for t,m in enumerate(r.finditer(b)):
  33. s+=b[i:m.start()]+a[t]
  34. i=m.end()
  35. s+=b[i:]
  36. return s
  37.  
  38. def f5():
  39. s=b
  40. for x in a:
  41. s=s.replace("^",x,1)
  42. return s
  43.  
  44.  
  45. print(f1(),f2(),f3(),f4(),f5())
  46.  
  47. print(f"f1: {timeit.timeit(f1,number=100000,globals=globals())}")
  48. print(f"f2: {timeit.timeit(f2,number=100000,globals=globals())}")
  49. print(f"f3: {timeit.timeit(f3,number=100000,globals=globals())}")
  50. print(f"f4: {timeit.timeit(f4,number=100000,globals=globals())}")
  51. print(f"f5: {timeit.timeit(f5,number=100000,globals=globals())}")
  52.  
Success #stdin #stdout 0.77s 9464KB
stdin
Standard input is empty
stdout
111aa222bb3333cc44444 111aa222bb3333cc44444 111aa222bb3333cc44444 111aa222bb3333cc44444 111aa222bb3333cc44444
f1: 0.12281795963644981
f2: 0.1370903793722391
f3: 0.17272479832172394
f4: 0.23945401888340712
f5: 0.06993494834750891