リストまたはタプルの一部を取得することは、非常に一般的な操作です。ループを使用してインデックスを通じて要素を 1 つずつ取得することに加えて、Python は便利なスライス (Slice) 演算子も提供します。
次の例のリストを定義します。
L = ['apple','banaba','peal','orange','water melon']
要素を取得します
要素を順番に取得します
たとえば、L[1] は2 番目の要素、つまりインデックス 1 の要素。
要素を逆順に取得する
リスト、タプル、文字列などは、要素を先頭から取得するだけでなく、末尾から取得することもできます。例:
list[-1] はリストの最後のものを指します。
複数の要素を取得する
先頭から複数の要素を取得する
print L[0:3] ||____切片结束index,但是不包括该index的元素。 |____切片起始index。包括该index的元素。 # 上述即取L这个list的index为0、1、2的三个元素。 print L[ :3] |___切片开始的index不填则默认是从list最前端即index=0开始。(事实上也不用空一格,这里只是展示方便。)
上記2つのprint関数の出力は['apple', 'banaba', 'peal']です。スライス記号は、
複数の要素を末尾から順に取得する
のペアです。たとえば、
L[-3:-1] | |____倒数第1个结束,但不包括该元素。 |_____倒数第3个开始,包括该元素。
なんと、次のルールを見つけました:
Python がスライスするとき、常に前の要素が含まれますが、最後の要素は含まれません。
もちろん、スライスは端から始まり、インデックスを省略すると最後までカットすることになります。例:
L[-3:]
突然、スライスするときに開始インデックスと終了インデックスが省略されるという魔法のアイデアが思いつきました。
つまり、L[:]、答えは元のリストと全く同じリストを切り出すことです。
上記の例はすべて、リストを使用して説明されています。実際、タプルと文字列は同じです。 Python や Java などの他のプログラミング言語では、文字列を操作するための関数が多数提供されています。実際、Python ではスライスを使用してこれを簡単に実行できます。
注意
Python がスライスする場合、正しいスライスが返されるように、[from:to] の from は to より小さくなければなりません。そうでない場合は、(文字列スライスの場合) 空のリスト、タプル、または何も返されません。 )。