【Python入門】スライスの基本的な使い方(範囲・飛ばし指定/逆順操作)について解説
Pythonでは、文字列やリスト・タプルといった配列から、特定の文字(あるいは要素)を取得する方法として「スライス機能」があります。
スライス機能を上手く活用すると、文字列やリストの中身を後ろから書き出すことも可能です。
この記事では、変数に保持された文字列や配列におけるスライス機能の基本操作について解説していきます。
基本的な使い方
スライス機能を使用する場合は、以下のように記述します。
- 開始番号
-
取得したい要素の最初(一番左)の番号
記載しない場合は、デフォルトで0となる - 終了番号
-
取得したい要素の最後(一番右)の番号
記載しない場合は、デフォルトで末尾(-1を含む)となる - ステップ
-
いくつずつ要素を取得していくか
記載しない場合は、デフォルトで1となる(飛ばしなしで取得)
また、マイナス値で指定すると要素が逆順で取得可能
上記の通り、スライス機能を使用するためには対象となる文字(あるいは要素)の番号を把握しておく必要があります。
シーケンス内の番号割り振りは、以下の通りです。
文字列の場合は1文字ごとに、リストやタプルなど配列の場合は要素ごとに番号が割り振られます。
また前から数える場合は0始まり、後ろから数える場合は-1始まりとなるため、指定する際は注意するようにしましょう。
開始番号の指定
開始番号では、取得したい文字(要素)の一番左の番号を記述します。
例えば、1から5番目を取得するなら「1」、-2から-6番目を取得するなら「-6」が開始番号となります。
開始番号を省略した場合は、初期値として「0」が設定されます。
word = "Python" # wordという変数に、文字列(Python)を保持
print(word[2:]) # 番号が2以上(2~5)の文字を表示
print(word[-5:]) # 番号が-5以上(-1~-5)の文字を表示
print(word[:4]) # 番号が4未満(0~3)の文字を表示
= 実行結果 =
thon
ython
Pyth
終了番号の指定
開始番号では、取得したい文字(要素)の一番右の番号を記述します。
例えば、1から5番目を取得するなら「6」、-2から-6番目を取得するなら「-1」が開始番号となります。
開始番号を省略した場合は、初期値として末尾(-1を含む)が設定されます。
word = "Python" # strという変数に、文字列(Python)を保持
print(word[:4]) # 番号が4未満(0~3)の文字を表示
print(word[:-3]) # 番号が-3未満(-6~-4)の文字を表示
print(word[2:]) # 番号が2以上(2~5)の文字を表示
= 実行結果 =
Pyth
Pyt
thon
ステップの指定(逆順での取得)
ステップでは、いくつごとに文字(要素)を取得するかを記述します。
例えば、「3」と指定した場合は「〇, ×, ×, 〇, ×, ×, …」のように2つ飛ばしで文字(要素)を取得します。
ステップを省略した場合は、初期値として「1」が設定されます。(飛ばしなしで取得)
また、マイナス値を指定すると要素を後ろから取得することも可能です。
ls = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # lsという変数に、リストを保持
print(ls[1:9:2]) # 番号が1以上9未満(1~8)の要素を、2つごとに表示
print(ls[::-1]) # 全ての要素を、-1つごと(逆順)で表示
= 実行結果 =
[2, 4, 6, 8]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
まとめ
この記事では、変数に保持された文字列や配列におけるスライス機能の基本操作について解説しました。
取得範囲の考え方やマイナス指定などややこしい部分もありますが、非常に重宝する機能なのでしっかり要点を押さえておくようにしましょう。