Python における[:-1]の意味

Vaibhav Vaibhav 2023年10月10日
  1. Python でのスライス
  2. Python での [ : -1] の重要性
Python における[:-1]の意味

スライスはプログラミング言語での操作であり、オブジェクトのシーケンスまたはオブジェクトや文字列の配列に対して実行できます。スライスでは、関数とより単純な表記法を使用してデータ構造をスライスし、元のデータ構造のサブストリングまたはサブシーケンス、またはサブ配列を取得します。

Python でのスライス

Python はプログラミング言語であり、スライスもサポートしていることを意味します。Python では、スライスを実行する方法は主に 2つあります。1つ目は slice() 関数を使用し、2つ目はインデックス構文を使用します。

Python で slice() コンストラクターを使用したのスライス

スライスコンストラクターは、startstop、および step の 3つの引数を受け入れます。このコンストラクターは、文字列またはオブジェクトの任意のシーケンスを分割するためのスライスオブジェクトを作成します。

  • start:これは、スライスを開始する場所からの開始インデックスです。デフォルト値は 0 です。
  • stop:これは、スライスが終了する終了インデックスです。それは強制的な議論です。
  • step:これは、スライスプロセスのシーケンスを反復処理するときに実行する必要のある増分の量です。デフォルト値は 1 です。

このユーティリティをもう少しよく理解するために、いくつかの例を見てみましょう。Python では、-1 が最後のインデックスを表すことに注意してください。また、インデックス作成または反復中に、停止インデックスは最終結果では考慮されません。操作は、その前のすべてに対して実行されます。

s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

slices = [
    slice(5),
    slice(0, -1),
    slice(1, -1, 2),
    slice(1, 4, 1),
    slice(5, -1),
    slice(3, -1, 3),
    slice(0, 0),
    slice(-1, 0, -1),
    slice(-5, 5, -3),
]

for i in range(len(slices)):
    print(s[slices[i]])

for i in range(len(slices)):
    print(a[slices[i]])

出力:

ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY

ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]

単一の値が slice() コンストラクターに渡されると、その値は stop インデックスに割り当てられることに注意してください。そのため、slice(5) の場合、出力は ABCDE として取得されました。

Python でインデックス構文を使用したのスライス

Python では、slice() コンストラクターを使用してスライスオブジェクトを作成する代わりに、次の構文を使用してスライスを実行できます。

sequence[start:stop:step]

受け入れられる引数は、前者の方法と同じです。本当に変わるのはそれらの書き方です。startstop、および step のデフォルト値は、それぞれ 0-1、および 1 です。引数をスキップしてデフォルト値を使用できますが、コロンを記述する必要があることに注意してください。少しよく理解するために、インデックス構文の例をいくつか見てみましょう。

s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])

出力:

F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY

ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]

Python での [ : -1] の重要性

ご覧のとおり、この構文はインデックス構文に属しています。[ : -1] は、最後のシーケンス要素を除くすべてのシーケンス要素を出力します。この概念を理解するためにいくつかの例を見てみましょう。

s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

print(s[:-1])
print(a[:-1])

出力:

ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]
著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python List