[non titled]

トレーディングとイラスト練習と空間と

リストのシフトをするコードは何をやっているのか

リストのシフトをする方法を探していたらこんなコードを見つけた。

return l[n:] + l[:n]

何をしているのか。

ここでlはリストで、nはシフトする量。

n以降のデータ+n以前のデータとして新しいリストをつくっている。

l=1,2,3,4,5でn=3なら[4,5 + 1,2,3]がシフト後のリストになる。

実際シフトしてみると

左シフト1 [2,3,4,5,1]

左シフト2 [3,4,5,1,2]

左シフト3 [4,5,1,2,3]

となって確かに正しくシフトされている。

上の各シフトの量とシフト後のインデックス0要素を見てみると

左シフト1のインデックス0要素は元のリストのインデックス1要素

左シフト2のインデックス0要素は元のリストのインデックス2要素

...

ここまでわかればreturn l[n:]+l[:n]が何をしているのか分かった。

 

これで出来た。

今気が付いたけど、問題文間違えて解釈してたから余計にはまった。

 

プログラミングもドローイングもトレードも建築も、取るに足らない変化しかしてないって思ってしまうことががちょくちょくあるけど、続けるほかないから、ね。