はじめに
競技プログラミングで思いついたけど使わなかった方法を備忘録として残しておきます。
[0,3,7,9,10]
このような配列があった場合、配列の要素間の差は以下のようになります。
#3,4,2,1
これを求めるときいったんforで考えました。
forを使った場合
A = [0,3,7,9,10]
ans=[]
for i in range(1,5):
ans.append(A[i]-A[i-1])
実行時間 : 59ms
もっと早い方法がないかと模索してmapも試してみました。
mapを使った場合
from operator import sub
A = [0,3,7,9,10]
B=A[:]
A.pop(0)
B.pop(-1)
ans = list(map(sub, A, B))
実行時間 : 58ms
結果変わらず、、、
まとめ
この後要素数を増やしたりして実行速度を測定しましたが、ほぼ同じ速度でした、今回の教訓はforもmapも同じような使い方ができるけど、選択肢としてどちらも使えることができるようにしておくことが大事だと思います。