fork(1) download
  1. #!/usr/local/bin/python3
  2.  
  3. from itertools import tee
  4. from timeit import timeit
  5. import random
  6.  
  7. def deviation(A):
  8. yield 0
  9. for i in range(len(A) - 1):
  10. yield abs(A[i+1] - A[i])
  11.  
  12. def deviation_(A):
  13. return [abs(A[i+1] - A[i]) for i in range(len(A) - 1)]
  14.  
  15. def wim(A):
  16. a, b = tee(A)
  17. next(b, None)
  18. return [abs(x-y) for x,y in zip(a, b)]
  19.  
  20. A = [random.randint(0,1000) for _ in range(999)]
  21.  
  22. print(timeit('list(deviation(A))', setup='from __main__ import deviation, A', number=1000))
  23. print(timeit('deviation_(A)', setup='from __main__ import deviation_, A', number=1000))
  24. print(timeit('wim(A)', setup='from __main__ import wim, A', number=1000))
  25.  
Success #stdin #stdout 1.28s 12384KB
stdin
Standard input is empty
stdout
0.45900607109069824
0.37869811058044434
0.2971670627593994