◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

DMM WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
TECH::CAMP教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
DMM WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!

Pythonを含むプログラミングを行っている時に、活躍するのが文字などを区切る機能です。

文字を区切ると聞くとあまり、イメージがつかない方も多いかもしれません。

今回はPythonで文字を区切る時に使用するスライスについて、基本から実践的な使用例までを徹底解説していきます。

スライスについて

まずはPythonのスライスについて、解説していきます。

スライスでは値を区切って抽出することができます。

スライスで区切る代表的なものは、文字列から一部を取得、配列から要素番号を指定して区切って抽出するなどです。

それではスライスの記述方法などを詳しく解説します。

スライスの基本記述について

スライスの基本的な記述方法は、下記になります。


スライスで抽出対象の変数名[開始インデックス:終了インデックス]

スライス表記

スライスの基本的な記述方法は、上記でご紹介しましたが、注意しないといけない点は、括弧の種類に注意必要です。

開始インデックスと終了インデックスは省略することが可能です。

開始インデックスを省略した場合は、要素の最初から終了インデックスまでを抽出します。

終了インデックスを省略した場合は、開始インデックスから要素の最後までを抽出することになります。

スライスを利用した変数への代入

それでは具体的な、スライスを利用した変数への代入使用例は、下記になります。

#スライス対象の変数準備
tmp = "abcdef"
#4文字目から5文字目までを抽出
slice_sample1 = tmp[3:5]
#最初から5文字目までを抽出
slice_sample2 = tmp[:5]
#3文字目から最後までを抽出
slice_sample3 = tmp[2:]
#print関数による出力確認
print(slice_sample1)
print(slice_sample2)
print(slice_sample3)
#実行結果
de
abcde
cdef

実行結果からもわかる様に、要素番号は0番目から開始されており、終了インデックスは指定した番号の1つ前の要素番号までになります。そのため、結果的に、終了インデックスと最後の文字目は一致します。

配列から複数の値を取得するスライス方法

配列から複数の値を取得するスライス方法について、解説していきます。

配列から複数の値を取得する基本的な記述方法は、下記になります。


配列名[開始インデックス:終了インデックス]

基本的には対象が変数から配列に変更されただけで、記述方法は同じになります。

配列から複数の値を取得するスライス使用例

記述方法だけでは、イメージがつきにくいので、具体的な使用例をご紹介します。


#スライス対象のリスト配列の初期化

list_sample = ["Java","Python","C","VB.NET","Ruby"]

#リスト配列の2番目から4番目の要素を抽出

list_slice1 = list_sample[1:4]

#リスト配列の最初の要素から3番目の要素を抽出

list_slice2 = list_sample[:3]

#リスト配列の3番目の要素から最後の要素を抽出

list_slice3 = list_sample[2:]

#print関数による出力確認

print(list_slice1)

print(list_slice2)

print(list_slice3)

#実行結果

['Python', 'C', 'VB.NET']
['Java', 'Python', 'C']
['C', 'VB.NET', 'Ruby']

配列を使った記述方法の場合は、要素番号が0番目から開始されており、終了インデックスは指定した番号の1つ前の要素番号までになる為、勘違いしないように注意しなければいけません。

記述方法になれるまでは、実際にプログラミングする時にprint関数などで確認を行うことをおすすめします。

後ろからのスライスについて

文字列や配列とスライスを組み合わせて使用していると最初からではなく、後ろから文字列や要素を取り出したい機会は少なくありません。

Pythonのスライスでは、後ろからスライスの要素を抽出することが可能です。

後ろからのスライス方法

後ろから要素を抽出する場合の記述方法は、通常のスライスと同じです

指定するインデックスに「-(マイナス)」を指定することで後ろから要素を抽出することが出来るようになります。

後ろからのスライス使用例

後ろからのスライス使用例を文字列と配列それぞれをご紹介します

後ろからスライス使用例:文字列

後ろから文字列を抽出する具体的な使用例は、下記になります。

#後ろから文字列を抽出対象変数

tmp_sample = "abcdef"

#スライスで後ろから3番目と2番目を抽出

tmp_slice1 = tmp_sample[-3:-1]

#スライスで後ろから4番目から最後までを抽出

tmp_slice2 = tmp_sample[-4:]

#スライスで最初から後ろから3番目までを抽出

tmp_slice3 = tmp_sample[:-2]

#print関数による出力確認

print(tmp_slice1)

print(tmp_slice2)

print(tmp_slice3)

#実行結果

de
cdef
abcd

後ろからのスライスでは、-1(マイナス)が最後の文字になります。

そのまま後ろから2番目の文字が-2、後ろから3番目の文字が-3・・・となっていきます。

また、終了インデックスは、指定の1つ前の文字までとなるため、終了インデックスの-1 =開始インデックスの-2となります。

後ろからスライス使用例:配列

後ろからスライスする方法で配列の具体的な使用例は、下記になります。


#スライス対象のリスト配列の初期化

list_sample = ["Java","Python","C","VB.NET","Ruby"]

#後ろから3番目と2番目の要素を抽出

list_slice1 = list_sample[-3:-1]

#最初の要素から後ろから2番目までの要素を抽出

list_slice2 = list_sample[:-1]

#後ろから4番目から最後までの要素を抽出

list_slice3 = list_sample[-4:]

#print関数による出力確認

print(list_slice1)

print(list_slice2)

print(list_slice3)

#実行結果

['C', 'VB.NET']
['Java', 'Python', 'C', 'VB.NET']
['Python', 'C', 'VB.NET', 'Ruby']

文字列の時と同様で、-1(マイナス)が最後の要素になります。

そのまま後ろから2番目の要素が-2、後ろから3番目の要素が-3・・・となっていきます。

カンマ区切りで多次元配列のスライス方法

リスト配列を入れ子した多次元配列をスライスする方法について、解説していきます。

基本的な記述方法は同じで、カンマで区切られた部分を1つの要素としてスライスします。

カンマ区切りで多次元配列のスライス使用例

入れ子された多次元の配列をスライスする使用例をご紹介します。

#入れ子された多次元配列

lists_tmp = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

#スライスを使用して[4,5,6],[7,8,9]の要素を抽出

lists_slice1=lists_tmp[1:3]
#スライスを使用して[4,5,6]から最後まで抽出
lists_slice2=lists_tmp[1:]
#print関数による出力確認

print(lists_slice1)
print(lists_slice2)

入れ子されたリストからスライスで要素を抽出する場合も基本的な考え方は同じになります。

最後から順番に入れ替えるスライスについて

スライスを使用して最後から順番に入れ替える方法について、ご紹介していきます。

最後から順番に入れ替えるスライス方法

最後の方から順番を入れ替えるにはまず、スライスで読み込む幅を指定する方法が必要になります。

まずは下記記述方法で、読み込みステップを指定が可能です。

#変数または配列[開始インデックス:終了インデックス:ステップ数]
#ステップの使用例
tmp = "abcdef"
#2文字目から最後までを2つおきに抽出
tmp2 = tmp[1::2]
#print関数による出力確認
print(tmp2)
#出力結果
bdf

出力結果から取得するのが、2つおきになっていることがわかると思います。

これを応用することで最後から順番に入れ替えることができます。

最後から順番に入れ替えるスライス使用例

それでは実際にスライスを使って格納されているデータを最後から順番に格納する方法をご紹介します。


#最後から順番を入れ替える為の文字列変数と配列を宣言

tmp = "123456789"

list_tmp = ["apple","meat",milk"]

#最後から順番に入れ替える為に対象を全てにし、ステップを-1でスライス

tmp_result = tmp[::-1]

list_result = list_tmp[::-1]

#print関数による出力確認

print(tmp_result)

print(list_result)

#実行結果

987654321
['milk', 'meat', 'apple']

実行結果から変数、配列宣言時の値を最後順番に格納されていることが確認頂けたと思います。

まとめ

今回はPythonのスライスについて、解説してきましたが、いかがでしたか。

システムを開発していると特定の値から一部を抜き出したり、最後から順番に抽出する機会は少なくありません。

スライスの記述方法を知っていれば、あとは以下に応用して必要な情報を抜き出すかがポイントになります。

スライスの基本をしっかり習得して、文字列の抜き出しや配列から特定の部分を抜き出せるよう今回の基本部分をしっかり参考にして頂ければ幸いです。

また後半で解説した後ろから取得する方法などの応用部分について、最低限こんな事ができると言う知識を持って貰えれば悩んだ時にもスライスというキーワードで調べることで実現することが出来ます。

DMM WEWBCAMP/DMM WEBCAMP PROについて

DMM WEBCAMPは1ヶ月でプログラミング・WEBデザインを学ぶ通い放題のプログラミングスクールです。DMM WEBCAMP PROは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

1月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP PROコース。
12月受入枠は満員となっております。1月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWEBデザイン・プログラミングを学びたい方はこちら!


▼ついに開講!オンラインでWEBデザイン・プログラミングを学びたい方はこちら!

おすすめの記事