pythonの配列の抽出について調べたことをお話しようと思います。
pythonのコードでよく見る[:]ですね。
基本
array[x:y]
まず、基本的なarray[x:y]の意味ですが、
「arrayのx番目の要素からy番目の要素まで」を意味しています。
具体例を見てみたほうが早いです。
元の配列として以下のような配列を用います。
arr = ['A','B','C','D','E','F']
では、この配列でarr[1, 4]がどのような配列になるか見てみます。
arr[1:4] #=> ['B', 'C', 'D']
arrの1番目の要素から4番目の要素が抽出されました。
array[x:]
では、array[x:]はどうなるでしょうか。
同様の例を用いて見てみます。
arr[2:] #=> ['C', 'D', 'E', 'F']
上記の例でわかると思いますが、array[x:]は
「x番目の要素から、最後の要素まで」を意味します。
ちなみにxが負の場合(array[-x:])は
「後ろから-x番目から」を意味します。
例えば
arr[:-2] #=> ['E', 'F']
array[:x]
array[:x]も同じように
arr[:3] #=> ['A', 'B', 'C']
上記の例でわかると思いますが、array[:x]は
「最初の要素からx番目の要素まで」を意味します。
応用
array[::z]
実はarray[::z]のような方法もあります。
これは「zで割り切れる番目の要素」を意味します。
言葉にするとわかりにくいですが、
具体例で見てみます。
a[::2] #=> ['A', 'C', 'E']
上記は「2で割り切れる番目の要素」となっていることがわかります。
x, yを指定すれば、xからy番目の配列を生成してから同様の処理を行います。
a[1:5:2] #=> ['B', 'D']
array[::-1](反転 reverse)
さらにおもしろいことにarray[::-1]は配列の反転を表します。
a[::-1] #=> ['F', 'E', 'D', 'C', 'B', 'A']
参考文献
[https://www.pythoncentral.io/how-to-slice-listsarrays-and-tuples-in-python/:title]
コメント