0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonでlistの中で一つ前のインデックスの要素との差を求める。

Posted at

はじめに

競技プログラミングで思いついたけど使わなかった方法を備忘録として残しておきます。

[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も同じような使い方ができるけど、選択肢としてどちらも使えることができるようにしておくことが大事だと思います。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?