Python 配列のスライシング #4

株式会社リュディアです。引き続き Python の配列のスライシングについてまとめていきたいと思います。

前回までの Python 配列のスライシング のまとめへのリンクは以下を参考にしてください。

今回は正負のインデクス、ステップを混載させたスライシングです。早速以下の例を見てください。

python_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

print(python_list[1:-5:1])
print(python_list[5:-1:1])

print(python_list[-5:1:-1])
print(python_list[-1:5:-1])

#
# ['b', 'c', 'd', 'e']
# ['f', 'g', 'h', 'i']
# ['f', 'e', 'd', 'c']
# ['j', 'i', 'h', 'g']
#

スライシングの start, stop とステップに正負の数をまぜています。出力結果はイメージ通りになりましたか?以下にイメージ図をつけます。

画像1

図と照らし合わせてもらえばわかると思います。過去のまとめでも何度も記載していますが注意点は stop で指定した数は含まれないということです。最終要素までを含みたい場合は以下のように指定すればよかったですね。

python_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

print(python_list[0::1])
print(python_list[:10:1])

print(python_list[-1::-1])

#
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
# ['j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a']
#

最初の例は [ 0 : : 1 ] としています。start のインデクスを 0 としステップは正の数 1 です。stop を指定していないので最終要素までを指定していることになります。

次の例は [ : 10 : 1 ] としています。start を指定していないので先頭要素からになります。この例では stop を 10 としているので 10 - 1 = 9 のインデクスを持つ最終要素までを指定していることになります。

最後に [ -1 : : -1 ] です。start のインデクスを -1 つまり最終要素としステップは負の数 -1 ですので先頭に向かってすべての要素をインデクシングします。

Python 配列のスライシング に関するまとめの続きは以下からどうぞ。

では、ごきげんよう。



この記事が気に入ったらサポートをしてみませんか?