Advertisement
lucaswiman

Comparison of variable swapping in Python

Aug 20th, 2011
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.90 KB | None | 0 0
  1. >>> import dis
  2. >>> dis.dis(idiomatic_swap)
  3.   2           0 LOAD_FAST                0 (a)
  4.               3 LOAD_FAST                1 (b)
  5.               6 ROT_TWO            
  6.               7 STORE_FAST               1 (b)
  7.              10 STORE_FAST               0 (a)
  8.              13 LOAD_CONST               0 (None)
  9.              16 RETURN_VALUE        
  10. >>>
  11. >>>
  12. >>> def subtraction_swap(a, b):
  13. ...     a = a + b
  14. ...     b = a - b
  15. ...     a = a - b
  16. ...
  17. >>>
  18. >>> def xor_swap(a, b):
  19. ...     a = a ^ b
  20. ...     b = a ^ b
  21. ...     a = a ^ b
  22. ...
  23. >>>
  24. >>> from timeit import Timer
  25. >>>
  26. >>> def do_test(n, func_name):
  27. ...     t = Timer('f(1,2)', 'from __main__ import %s as f' % func_name)
  28. ...     print t.timeit(number=n)
  29. ...
  30. >>> do_test(1000000, 'idiomatic_swap')
  31. 0.273808002472
  32. >>> do_test(1000000, 'subtraction_swap')
  33. 0.422091960907
  34. >>> do_test(1000000, 'xor_swap')
  35. 0.501079797745
  36. >>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement