#!/usr/local/bin/python3
from itertools import tee
from timeit import timeit
import random
def deviation(A):
yield 0
for i in range(len(A) - 1):
yield abs(A[i+1] - A[i])
def deviation_(A):
return [abs(A[i+1] - A[i]) for i in range(len(A) - 1)]
def wim(A):
a, b = tee(A)
next(b, None)
return [abs(x-y) for x,y in zip(a, b)]
A = [random.randint(0,1000) for _ in range(999)]
print(timeit('list(deviation(A))', setup='from __main__ import deviation, A', number=1000))
print(timeit('deviation_(A)', setup='from __main__ import deviation_, A', number=1000))
print(timeit('wim(A)', setup='from __main__ import wim, A', number=1000))
IyEvdXNyL2xvY2FsL2Jpbi9weXRob24zCiAgICAKZnJvbSBpdGVydG9vbHMgaW1wb3J0IHRlZQpmcm9tIHRpbWVpdCBpbXBvcnQgdGltZWl0CmltcG9ydCByYW5kb20KCmRlZiBkZXZpYXRpb24oQSk6CiAgICB5aWVsZCAwCiAgICBmb3IgaSBpbiByYW5nZShsZW4oQSkgLSAxKToKICAgICAgICB5aWVsZCBhYnMoQVtpKzFdIC0gQVtpXSkKCmRlZiBkZXZpYXRpb25fKEEpOgogICAgcmV0dXJuIFthYnMoQVtpKzFdIC0gQVtpXSkgZm9yIGkgaW4gcmFuZ2UobGVuKEEpIC0gMSldCgpkZWYgd2ltKEEpOgogICAgYSwgYiA9IHRlZShBKQogICAgbmV4dChiLCBOb25lKQogICAgcmV0dXJuIFthYnMoeC15KSBmb3IgeCx5IGluIHppcChhLCBiKV0KCkEgPSBbcmFuZG9tLnJhbmRpbnQoMCwxMDAwKSBmb3IgXyBpbiByYW5nZSg5OTkpXQoKcHJpbnQodGltZWl0KCdsaXN0KGRldmlhdGlvbihBKSknLCBzZXR1cD0nZnJvbSBfX21haW5fXyBpbXBvcnQgZGV2aWF0aW9uLCBBJywgbnVtYmVyPTEwMDApKQpwcmludCh0aW1laXQoJ2RldmlhdGlvbl8oQSknLCBzZXR1cD0nZnJvbSBfX21haW5fXyBpbXBvcnQgZGV2aWF0aW9uXywgQScsIG51bWJlcj0xMDAwKSkKcHJpbnQodGltZWl0KCd3aW0oQSknLCBzZXR1cD0nZnJvbSBfX21haW5fXyBpbXBvcnQgd2ltLCBBJywgbnVtYmVyPTEwMDApKQo=