Python で配列のサブ配列を取得する
配列の連続部分はサブ配列であり、文字列の連続部分はサブ文字列です。要素の順序は、両方の元のリストまたは文字列に対して同じままです。
Python を使用すると、他のほとんどのプログラミング言語と比較して、サブ配列またはサブ文字列を非常に簡単に取得できます。
この記事では、Python を使用して配列のサブ配列を取得する方法を学習します。
Python でスライスを使用して配列のサブ配列を取得する
Python では、スライスを使用して配列のサブ配列を取得できます。簡単で便利な表記法である拡張インデックスを使用して、配列または文字列をスライスできます。構文は次のとおりです。
object[start:end:step]
以下は、各コンポーネントの説明です。
object
- リストまたは文字列。start
- スライスの開始インデックス。デフォルト値は0
です。end
- スライスの終了インデックス。このインデックスとしての値は、最終結果の一部ではないことに注意してください。デフォルト値は、反復可能なオブジェクトの長さです。step
- 最終結果の各インデックス間の増分の数。デフォルトでは、1
です。
この Python 機能を使用して、いくつかの例を使用して配列のサブ配列を取得する方法を理解しましょう。同じことについては、次のコードを参照してください。
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = array[1:4]
b = array[0:8]
c = array[6:]
d = array[:5]
print(a)
print(b)
print(c)
print(d)
出力:
[2, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8]
[7, 8, 9, 10]
[1, 2, 3, 4, 5]
ご覧のとおり、出力には、start
と end
インデックスの間のすべてのインデックスが含まれています(start
包括的および end
排他的)。さらに、start
に値が設定されていない場合、デフォルトで最初のインデックスが考慮され、end
に値が設定されていない場合、デフォルトで最後の値が考慮されます。
これをさらに拡張して、リストの個々の値にスライスを適用できます。文字列のリストとリストのリストを作成し、リスト内包表記とスライスを使用して、各文字列とリストのサブ文字列とサブ配列を見つけます。リスト内包表記は、1つまたは複数のリストを反復処理し、新しいリストを作成するためのインライン構文です。
上記の例については、次のコードを参照してください。
a = ["Hello", "World", "Computer", "Science", "GitHub", "StakeOverflow"]
b = [
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[1.1, 2.2, 3.3, 4.4, 5.5],
[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
["Q", "W", "E", "R", "T", "Y"],
[True, False, None, None, False, True],
]
x = [element[1:5] for element in a]
y = [element[1:3] for element in b]
print(x)
print(y)
出力:
['ello', 'orld', 'ompu', 'cien', 'itHu', 'take']
[[2, 3], [2.2, 3.3], [0.2, 0.3], ['W', 'E'], [False, None]]
上記の Python コードは、文字列リスト内の文字列ごとに、インデックス 1
、2
、3
、および 4
に存在する文字を新しい文字列に連結し、新しい文字列リストを作成します。また、リストのリストについては、インデックス 1
と 2
のすべての値をまとめて、リストの新しいリストを作成します。さらに、両方の新しいリストを 2つの新しい変数に格納し、それらを出力します。