Python の slice() 関数は、渡された引数に従って、ユーザが指定した入力のインデックスの集合からスライスされたオブジェクトを返す。
したがって、リスト、タプル、文字列など、任意のシーケンスをスライスすることができます。
構文は以下の様な感じです。
slice(Stop)
slice(Start, Stop[, Step)
- Start: (オプション) スライス処理を開始するインデックスを指定する整数値。
- Stop: slice() メソッドの終了インデックスを指定する整数。
- Step: (オプション) スライス処理のステップを指定する整数。
slice()関数が返す値。
スライスされたオブジェクト。
slice() 関数の基本的な理解
例えば、以下の様になります。
print("Printing arguments passed to the slice().... ")
input = slice(4)
print(input.start)
print(input.stop)
print(input.step)
input = slice(1,4,6)
print(input.start)
print(input.stop)
print(input.step)
|
結果は以下の通りです。
Printing arguments passed to the slice()....
None
4
None
1
4
6
Pythonのslice()で文字列を扱う
Python の slice() 関数は、文字列と一緒に2つの異なる方法で使用することができます。
- 正のインデックスを持つslice()関数
- 負のインデックスを持つ slice() 関数
1. 正のインデックスを持つ slice() 関数
例えば、以下の様になります。
input='Engineering'
result=input[slice(1,6)]
print(result)
|
結果は以下の通りです。
ngine
2. slice() 関数で負のインデックスを指定します。
例えば、以下の様になります。
input='Engineering'
result=input[slice(-5,-1)]
print(result)
|
結果は以下の通りです。
erin
Python の slice() とリスト
例えば、以下の様になります。
input_list = slice(1, 5)
my_list = ['Safa', 'Aman', 'Raghav', 'Raman', 'JournalDev', 'Seema']
print(my_list[input_list])
|
結果は以下の通りです。
['Aman', 'Raghav', 'Raman', 'JournalDev']
Python slice() with Tuples
例えば、以下の様になります。
input_tuple = slice(1, 5)
my_tuple = ['Safa', 'Aman', 'Raghav', 'Raman', 'JournalDev', 'Seema']
print(my_tuple[input_tuple])
|
結果は以下の通りです。
['Aman', 'Raghav', 'Raman', 'JournalDev']
Python slice() による拡張インデックス付け
Python の slice() の機能を提供するために、省略記法を使用することができます。
構文は以下の通りです。
input[start:stop:step]
例えば、以下の様になります。
my_tuple = ['Safa', 'Aman', 'Raghav', 'Raman', 'JournalDev', 'Seema']
result = my_tuple[1:3]
print(result)
|
結果は以下の通りです。
['Aman', 'Raghav']
Pythonスライスの削除
delキーワードは、特定の入力要素に適用されたスライスを削除するために使用することができます。
例えば、以下の様になります。
my_tuple = ['Safa', 'Aman', 'Raghav', 'Raman', 'JournalDev', 'Seema']
del my_tuple[:2]
print(my_tuple)
|
結果は以下の通りです。
['Raghav', 'Raman', 'JournalDev', 'Seema']
まとめ
以上、今回はPythonのslice()関数の基本的な機能を理解しました。