[::-1] で Python 例を挙げて

⚡ スマートサマリー

[::-1] で Python これは、あらゆるシーケンス型を反転させる強力なスライス式です。 Less本書では、インデックスの基本、スライスパラメータ、a[-1]とa[::-1]の違い、リストの反転、および例題について説明します。

  • 🔁 Reverse スライス: [::-1] は、開始位置が空、終了位置が空、ステップ -1 を使用します。
  • 📍 インデックス作成: 正の指数はゼロから始まり、負の指数は末尾から数えます。
  • 🆚 [-1] vs [::-1]: [-1] は最後の要素を返します。[::-1] は逆順のシーケンス全体を返します。
  • ???? リストと文字列: リスト、文字列、タプル、バイト列など、インデックス付きのあらゆる反復可能オブジェクトで動作します。
  • 速く、そして慣用的に: C言語で実装されており、 Python ループ。
  • 🤖 AIスニペット支援: AIツールはスライスパラメータを説明し、ループをスライスに変換します。

Python スライス Reverse

[::-1]とは何ですか? Python?

Python 1を利用する場合、さまざまな構文とアプリケーションがあります。次のように表現することもできます。 [-1]、または次のように説明することもできます。 [::-1].

上記の表記法の角括弧は、通常、リスト内の複数の項目を指定します。角括弧を使用する場合、リスト内の複数の項目または単一の項目を指定します。

プログラマーが [::-1] を定義するときは常に、プログラムが指定されたリストの最初から最後までトラバースする必要があることを示します。 Python ではインデックス付けを行うことができ、リストや文字列などの反復可能なシーケンスを細かく分割するのに役立ちます。

[::-1] の型は何ですか Python?

以下に説明するように、Python で 1 を表す方法は XNUMX つあります。

  • これは、コロンのない単純な角括弧で表すことも、二重コロン構文を使用する別の方法で表すこともできます。
  • リストや文字列などの反復可能なシーケンスは、[] 括弧を使用して項目レベルまで解析できます。
  • [] 括弧内には異なるインデックスを指定する必要があります。

以下はリストの構文です: –

構文:–

SEQUENCE [START: STOP: STEP]

上記の構文は一般的な表現です。コロンのない角括弧の構文は次のように表されます。

構文:–

SEQUENCE [-1]

2 つのコロンを含む角括弧の構文は次のように表されます。

構文:–

SEQUENCE[::-1]

説明: -

  • start パラメータは開始インデックス番号を表します。
  • stop パラメータは、終了または最後のインデックス番号を表します。
  • パラメータ ステップは、選択範囲の増分を提供するオプションのパラメータです。 構文では、ステップ数は -1 として初期化されます。
  • 上記の構文では、シーケンスは文字列、リスト、または辞書になります。

a[-1]とa[::-1]の差 Python

[-1] は負のインデックスに使用され、指定されたリスト内の逆順で項目を選択するのに役立ちます。これは逆順の最後からリストの先頭を意味します。ここで、[-1] は最後の位置から最初の項目を意味します。以下は A[-1] の使用法を説明する例です。

例:–

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The last element in the list is", b [-1])

出力:

The list is [7, 4, 5, 6]
The last element in the list is 6

A[::-1] と A[-1] は、実行の点では似ていますが、構文の点では異なります。 最初の構文には XNUMX つのパラメーターがありますが、後の構文には XNUMX つのパラメーターしかありません。

A[::-1] にある最初の XNUMX つのパラメータは、リストの開始と終了を表します。 start パラメータと stop パラメータを省略した場合は、リスト内のすべての項目が返されます。

この最後のパラメータでは、出力が逆の順序で表示されます。 このパラメータはオプションです。

以下はA[::-1]の使い方を説明する例です。

例:–

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The reversed list as determined is", b [::-1])

出力:

The list is [7, 4, 5, 6]
The reversed list as determined is [6, 5, 4, 7]

説明:

上記 Python コードは、作成されたリストに対して同じ結果を生成しません。代わりに、入力値として提供された基本リストの逆リストを提供します。

上記の違いは、 Pythonのインデックス作成ルール。

インデックス作成方法 Python?

反復可能な Python リスト内の項目にアクセスするには、リスト内のインデックス付けを実行するか、リスト内に存在する項目の位置に適用されるインデックスを使用する必要があります。

Python リストに対してゼロベースのインデックスを実行します。ゼロベースのインデックスの場合、リストの最初の項目は位置 0 として割り当てられます。

例として、Python リストの最初の項目と XNUMX 番目の項目にアクセスしてみましょう。

例:–

Python Code:

b= [7,4,5,6]
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [1])
print (" The first or beginning item in the list is", b [0])

出力:

The list is [7, 4, 5, 6]
The reverse ordered list as determined is [6, 5, 4, 7]
The second found item in the list is 4
The first or beginning item in the list is 7

説明:

上記のコードに見られるように、リストの最初の要素にアクセスするには、リスト タイプの正方形内のインデックスとして 0 が適用されます。 同様に、リストの 1 番目の要素にアクセスするために、リスト タイプの四角形内のインデックスとして XNUMX が適用されました。 リストのインデックス付けは、辞書、文字列、タプルにも適用できます。

のインデックス作成の例を見てみましょう。 Pythonの文字列型.

例:

Python Code:

b= "GURU99"
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [1])
print (" The first or beginning item in the list is", b [0])

出力:

The list is GURU99
The reverse ordered list as determined is 99URUG
The second item found in the list is U
The first or beginning item in the list is G

説明:

上記のように、出力は文字列「GURU99」の最初の要素と XNUMX 番目の要素を共有します。文字列は二重引用符を使用して初期化する必要があります。 Python また、反復可能なリスト、文字列、または辞書の負のインデックス付けを実行することもできます。

負のインデックスを指定すると、リストの最後の要素と最後から XNUMX 番目の要素にアクセスできます。 以下に示すように、文字列の負のインデックス付けの例を見てみましょう。

例:–

Python Code:

b= "GURU99"
print ("The list is", b)
print (" The reverse ordered list as determined is", b [::-1])
print (" The second item found in list is", b [-2])
print (" The first or beginning item in the list is", b [-1])

出力:

The list is GURU99
The reverse ordered list as determined is 99URUG
The second item found in the list is 9
The first or beginning item in the list is 9

インデックス指定では1つの要素が返され、スライス指定では範囲が返されます。

スライスの役割 Python

スライスとは、簡単に言うと「何かを切る」という意味です。 Python でリストを分割できるようになります。

ここで、スライスがいかに重要であるか Python:

  • これにより、反復可能なリストまたは文字列の特定の要素へのアクセスが可能になります。
  • また、文字列やリストの削除や変更にも役立ちます。
  • 反復可能なシーケンスを簡潔かつ読みやすくします。
  • これにより、インデックス付けの概念に基づく単一の要素と比較して、複数のアイテムにアクセスできるようになります。
  • インデックスを利用して、反復可能なシーケンス内の特定の項目範囲を取得します。
  • Python のインデックスは、反復可能なシーケンスに対してスライスを実行するかインデックスを作成するかにかかわらず、常に XNUMX から始まります。

スライスは XNUMX つの基本的な形式で実行できます。

  • 最初の形式は、シーケンスの開始インデックス パラメーターと終了インデックス パラメーターを提供するものです。 そうすることで、シーケンスはシーケンスの開始からシーケンスの終了 [終了 -1] までの間のすべての可能な項目を返します。
  • XNUMX 番目の方法は、シーケンスの開始インデックス パラメーターと終了インデックス パラメーターをステップとともに提供することです。 ステップを使用すると、開始と停止の間の項目範囲内の特定の項目または選択した項目を返すことができます。

スライスの最初の形式の構文は次のとおりです。

構文:

SEQUENCE [START: STOP]

2番目の形式のスライスの構文は次のとおりです。

構文:

SEQUENCE [START: STOP: STEP]

以下に示すように、スライス例の最初の形式の例を考えてみましょう。

例:

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[0:3]
print (" The substring in the list is", Substring)

出力:

The list is GURU99
The substring in the list is GUR

以下に示すように、スライス例の XNUMX 番目の形式の例を考えてみましょう。

例:

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[0:9:2]
print (" The substring in the list is", Substring)

出力:

The list is GURU99
The substring in the list is GR9

Python また、反復可能なシーケンスに対して負のスライスも実行します。これにより、シーケンスの末尾から一連の項目または要素にアクセスできるようになります。

以下に示すように、シーケンスの最後の XNUMX つの要素にアクセスする例を見てみましょう。

例:

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[-5:-1]
print (" The substring in the list is", Substring)

出力:

The list is GURU99
The substring in the list is URU9

逆転する方法 Python リストは[::-1]を使用しています Python?

負のスライスと負のインデックスを適用して、Python の文字列またはリストを逆にすることができます。 例として「GURU99」という名前の文字列を取り上げます。

例:

Python Code:

b= "GURU99"
print ("The list is", b)
Substring=b[::-1]
print (" The reverse of string GURU99 is", Substring)

出力:

The list is GURU99
The substring in the list is 99URUG

説明:

ここで、コードは最後の位置からすべての文字列要素をフェッチします。 これは -1 から始まり、最後の位置からすべての項目または要素をフェッチします。 上記のコード行は、Python に最後の要素からステップバックして最初の要素にステップアップするように指示し、その結果、逆リストまたは文字列が生成されます。

[::-1] の例 Python

スライスまたはインデックス付けを使用して、tracより広範なリストからより小さなリストを作成します。同様に、tracより大きな文字列から部分文字列を抽出する。

Pythonで1を使用する方法の例を見てみましょう。tracより大きなリストから抽出したより小さなリスト:

例:

Python Code:

b = [1, 2, 3, 4, 5, 6, 7]
slist = b[1::]
print("the smaller list from larger list is:",slist)

出力:

the smaller list from the larger list is: [2, 3, 4, 5, 6, 7]

説明:

上記のコードでは、最初のインデックスを残して、python extracリストの2番目の位置から始まるすべての要素を削除し、より小さなリストを作成します。これは、Pythonがリストされた要素の位置にインデックスを適用する際にゼロインデックスを使用するためです。

よくあるご質問

これは開始点も終了点もなく、ステップが-1のスライスです。すべての要素が逆順になった新しいシーケンスを返します。

CopilotやChatGPTのようなAIアシスタントは、開始、停止、ステップのパラメータを説明し、冗長なforループを簡潔なスライス式に変換します。

はい。AIツールは、読みやすさが簡潔さよりも優先される場合にlist(reversed(seq))を推奨し、それぞれの時間とメモリのトレードオフについて説明します。

a[-1]は最後の要素のみを返します。a[::-1]はシーケンス全体を逆順に返します。

はい。リスト、文字列、タプル、バイト列、バイト配列など、あらゆるシーケンス型に対応しています。返されるシーケンスは元の型を保持します。

スライスはC言語で実行され、完全なオブジェクトを返すため、一般的に高速です。一方、reversed()はメモリ効率は良いものの、処理速度は遅い遅延イテレータを返します。

いいえ。スライスは新しいシーケンスを返します。元のリスト、文字列、またはタプルは変更されません。リストをその場で反転するには、list.reverse() を使用してください。

はい。NumPy は同じスライス構文をサポートしており、コピーではなく逆順のビューを返します。独立した配列が必要な場合は、.copy() を使用してください。