リストを使ったPythonのスライスをColaboratoryで実行

指定した範囲を切り取ったり、逆順にしたりするPythonのスライスリストを使ってColaboratoryで実行します。そして、実行した様子とその解説を投稿します。


文字列を使ったPythonのスライスについてはこちらPythonのスライスをColaboratoryで実行 文字列の投稿になります。


目次
1.スライスについて
・スライスの使い方


2.リストのスライスの使い方
・始まり、終わりの範囲を指定する場合
・始まり、終わりの範囲(どちらか片方)を指定しない場合
・始まり、終わり両方を指定しない場合
・間隔を指定する場合
・マイナスを指定する場合


3.逆順で表示

4.指定した範囲に代入


1.スライスについて

スライス(slice)は薄く切り取る、薄く切るという意味になります。
なので、Pythonのスライスは文字列やリストデータを切り取るイメージになります。

・スライスの使い方

リストのスライスの使い方はコロン(:)を使って指定する範囲の始まり、終わり、間隔を指定します。

イメージ
変数=[リストデータ]
変数[始まり:終わり:間隔]
変数[2:5]や変数[:3]、変数[::2]のようにして使います。

リストデータを入れた変数に対して切り取る範囲の始まり、終わり、間隔を指定します。

2.リストのスライスの使い方

・始まり、終わりの範囲を指定する場合

スライスでリストデータを取り出すときは0番目から取り出します。

moji=[“A”,”B”,”C”,”D”,”E”,”F”,”G”]
番号     0   1   2   3   4   5   6

moji[0:3]は要素番号0~2までのデータを取り出します。ABC
moji[2:5]は要素番号2~4までのデータを取り出します。CDE
moji[3:4]は要素番号3のデータを取り出します。D

・始まり、終わりの範囲(どちらか片方)を指定しない場合

moji=[“A”,”B”,”C”,”D”,”E”,”F”,”G”]
番号     0   1   2   3   4   5   6

moji[:3]の始まりの部分を書かない場合はリストの最初にあたる”A“から取り出します。
moji[3:]の終わりの部分を書かない場合はリストの最後にあたる”G“まで取り出します。

moji[:0]の始まりの部分を書かない場合は始まりが0番なので、データを取り出せないです。
moji[0:]の終わりの部分を書かない場合は0番のAから最後のGまで取り出します。


・始まり、終わり両方を指定しない場合

変数[始まり:終わり:間隔]始まりを指定しない場合はリストの最初から終わりを指定しない場合はリストの最後まで取り出すので、”ABCDEFG“を取り出します。

・間隔を指定する場合

リストの間隔を空けて取り出したい場合は[ : : ]の1番右側に値を指定します。
変数[始まり:終わり:間隔]←この位置

moji=[“A”,”B”,”C”,”D”,”E”,”F”,”G”]
番号     0   1   2   3   4   5   6

moji[::2]は始まりのAから1個飛ばしで表示します。ACEG
moji[::3]は始まりのAから2個飛ばしで表示します。ADG
moji[1::2]は1番目のBから1個飛ばしで表示します。BDF

・マイナスを指定する場合

マイナスで指定する場合はリストの後ろから数えます

moji=[“A”,”B”,”C”,”D”,”E”,”F”,”G”]
番号     0   1   2   3   4   5   6

moji[:-3]はABCDEFGの後ろ3つEFGを取り除いたリストになります。ABCD
moji[-3:]はABCDEFGの後ろ3つEFGのリストデータを取り出します。EFG

3.逆順で表示

リストを逆順で表示するときは 変数[始まり:終わり:間隔]の間隔を指定する場所に-1を指定すると逆順になります。

逆順にしたリストを変数に入れて取り出す場合はになります。

変数moji_1には[‘G’, ‘F’, ‘E’, ‘D’, ‘C’, ‘B’, ‘A’]のリストデータが入っています。
moji_1[0:1]は”G”を取り出し、moji_1[6:7]は”A“を取り出します。

4.指定した範囲に代入

moji=[“A”,”B”,”C”,”D”,”E”,”F”,”G”]
番号     0   1   2   3   4   5   6

リストの場合スライスのやり方で指定した範囲に値を代入することができます。文字列はできないです
[‘D’, ‘E’, ‘F’, ‘G’]の場所に[13,26,39,18]のリストデータを代入しています。