fork(1) download
  1. import timeit
  2. import string
  3. import dis
  4.  
  5. def fn1():
  6. return max(sp)
  7. def fn2():
  8. return max(*{sp})
  9. def fn3():
  10. return max({*sp})
  11.  
  12. sp = string.printable
  13. print(timeit.timeit(fn1,number=100000))
  14. print(timeit.timeit(fn2,number=100000))
  15. print(timeit.timeit(fn3,number=100000), '\n')
  16.  
  17. sp = "11111111122222222222333333333000000"
  18. print(timeit.timeit(fn1,number=100000))
  19. print(timeit.timeit(fn2,number=100000))
  20. print(timeit.timeit(fn3,number=100000), '\n')
  21.  
  22. sp = "1234567890"
  23. print(timeit.timeit(fn1,number=100000))
  24. print(timeit.timeit(fn2,number=100000))
  25. print(timeit.timeit(fn3,number=100000), '\n')
  26.  
  27. dis.dis(fn1)
  28. dis.dis(fn2)
  29. dis.dis(fn3)
Success #stdin #stdout 1.61s 10088KB
stdin
Standard input is empty
stdout
0.256754606962204
0.27222008258104324
0.5778402611613274 

0.09641855210065842
0.10435441881418228
0.08845784515142441 

0.0461873784661293
0.053011924028396606
0.08666630834341049 

  6           0 LOAD_GLOBAL              0 (max)
              2 LOAD_GLOBAL              1 (sp)
              4 CALL_FUNCTION            1
              6 RETURN_VALUE
  8           0 LOAD_GLOBAL              0 (max)
              2 LOAD_GLOBAL              1 (sp)
              4 BUILD_SET                1
              6 CALL_FUNCTION_EX         0
              8 RETURN_VALUE
 10           0 LOAD_GLOBAL              0 (max)
              2 LOAD_GLOBAL              1 (sp)
              4 BUILD_SET_UNPACK         1
              6 CALL_FUNCTION            1
              8 RETURN_VALUE