Bicepper
こんにちは!Bicepperです。
Pythonには「slice(スライス)」と呼ばれる便利な機能がありますが、Python初心者、プログラミング初心者にとっては少々難しい内容でもあります。
今回はそんな便利なsliceの使い方と書き方を、サンプルを交えて解説します!
Pythonには「slice(スライス)」と呼ばれる便利な機能がありますが、Python初心者、プログラミング初心者にとっては少々難しい内容でもあります。
今回はそんな便利なsliceの使い方と書き方を、サンプルを交えて解説します!
Pythonのslice(スライス)ってなに?
slice(スライス)は、文字列やタプル、リストなどの特定のオブジェクトから一部を切り出す時に使うものです。
スライスの書き方は、以下の通りになります。
[start:end:step]
とっても分かりづらいので、例を見てみましょう!
[ : ]
[:]を使うと、対象オブジェクトの全体を取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[:])
print(sample[:])
=============================
[1, 5, 10, 4, 8, 22, 111, 63, 23]
abcdefghijklmnopqrstuvwxyz
[start : ]
プラスで指定
[start:]を使うと、対象オブジェクトのオフセット(指定した場所)から、末尾までを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[2:])
print(sample[9:])
=============================
[10, 4, 8, 22, 111, 63, 23]
jklmnopqrstuvwxyz
マイナスで指定
[-start:]を使うと、対象オブジェクトの末尾から、「-start分」を取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[-2:])
print(sample[-9:])
=============================
[63, 23]
rstuvwxyz
[ : end]
プラスで指定
[:end]を使うと、対象オブジェクトの先頭から「end-1」のオフセット(指定した場所)までを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[:2])
print(sample[:9])
=============================
[1, 5]
abcdefghi
マイナスで指定
[:-end]を使うと、対象オブジェクトの末尾から「-end」分を除く全てを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[:-2])
print(sample[:-9])
=============================
[1, 5, 10, 4, 8, 22, 111]
abcdefghijklmnopq
[start : end]
プラスで指定
[start:end]を使うと、対象オブジェクトの「start」オフセットから「end-1」のオフセットまでを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[2:5])
print(sample[3:9])
=============================
[10, 4, 8]
defghi
プラスとマイナスで指定
[start:-end]を使うと、対象オブジェクトの「start」オフセットから、末尾から「-end」を除く全てを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[2:-5])
print(sample[3:-9])
=============================
[10, 4]
defghijklmnopq
マイナスで指定
[-start:-end]を使うと、対象オブジェクトの末尾からの「start」オフセットから、末尾から「-end-1」の間全てを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[-6:-2])
print(sample[-8:-4])
=============================
[4, 8, 22, 111]
stuv
[start : end : step]
プラスで指定
[start:end:step]を使うと、対象オブジェクトの「start」オフセットから「end-1」のオフセットまでを、「stepごと」に取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[1:8:2])
print(sample[3:22:3])
=============================
[5, 4, 22, 63]
dgjmpsv
プラスとマイナスで指定
[start:-end:step]を使うと、対象オブジェクトの「start」オフセットから、末尾から「-end」を除く全体を、「stepごと」に取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[1:-2:2])
print(sample[3:-4:3])
=============================
[5, 4, 22]
dgjmpsv
マイナスで指定
[-start:-end:step]を使うと、対象オブジェクトの末尾からの「start」オフセットから、末尾から「-end-1」の間全てを、「stepごと」に取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[-6:-2:2])
print(sample[-14:-4:3])
=============================
[4, 22]
mpsv
[ : : step]
プラスで指定
[::step]を使うと、対象オブジェクトから「stepごと」に、全てを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[::3])
print(sample[::6])
=============================
[1, 4, 111]
agmsy
マイナスで指定
[::-step]を使うと、対象オブジェクトから「stepごと」に、逆順に全てを取得できます。num_list = [1, 5, 10, 4, 8, 22, 111, 63, 23]
sample = "abcdefghijklmnopqrstuvwxyz"
print(num_list[::-3])
print(sample[::-6])
=============================
[23, 22, 10]
ztnhb
Bicepper
初心者にとってはちょっととっつきにくいPythonのslice(スライス)ですが、活用できるようになれば非常に強力です。
ぜひ習得してsliceを自在に扱いましょう!
ぜひ習得してsliceを自在に扱いましょう!