Pythonの配列記述にあるコロンの意味について現役エンジニアが解説【初心者向け】

初心者向けにPythonの配列記述にあるコロンの意味について現役エンジニアが解説しています。リスト型、文字列、タプル型のデータ型はシーケンスと呼ばれ、スライス機能を使ってデータを切り取ることあ出来ます。コロンを使って開始点や終了点のインデックス番号を指定することが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonの配列記述にあるコロンの意味について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonの配列記述にあるコロンの意味について詳しく説明していくね!

大石ゆかり

お願いします!

この記事では、PythonのList型やNumpy配列型などを扱うときに必須の「スライス」について解説します。

スライスとは

「スライス」というのは、Pythonにおける「シーケンス」と呼ばれる種類のデータ型を扱うときに非常に便利な機能です。「シーケンス」というのは、

["a", "b", "c", "e", "d"]

などのように複数の値を保持することのできるデータ型のことです。

Pythonでは、

  • リスト型
  • 文字列
  • タプル型

など様々なものが用意されています。シーケンスでは、各要素を取得する場合には、

変数名[インデックス番号]

のようにして行ないます。インデックス番号というのは、イメージ的には要素が何番目にあるかというようなことですが、例えば5個の要素を持つシーケンスの場合は、

[インデックス番号は0, インデックスは番号1, インデックス番号は2, インデックス番号は3, インデックス番号は4]

となって、先頭が0から始まることに注意してください。なので、

ls = ["a", "b", "c", "e", "d"]

という名前のリストの場合は、

ls[0] → "a"
ls[1] →  "b"
ls[2] → "c"
ls[3] → "e"
ls[4] → "d"

のようになります。

一方で、シーケンスから複数の値を取得したいとき、シーケンスの長さがとてつもなく長い場合などには1つ1つインデックスを指定するには少し大変です。

そこで用意されている便利な操作方法がスライスです。スライスは「:」(コロン)を使うので一見分かりづらいかもしれませんが、なれると非常に使い勝手のいい操作です。

スライスの使い方

では、スライスの使い方について解説していきます。まず、最も基本的な使い方としては、

始点のインデックス番号 : 終点のインデックス番号

として、2つのインデックス番号を指定する方法があります。こうすることで、「始点」から「終点」の1つ前までの要素を1度に取得することができます。

ls = ["a", "b", "c", "e", "d"]

というリストの場合は、

ls[2:5]

とすると、

["c", "e"]

というインデックス番号が2から(4-1)までの2つの要素を取得することができます。始点のインデックス番号を省略して、

ls[:4]

とすると、

["a", "b", "c", "e"]

のように、最初の要素からインデックス番号が(4-1)の要素までの4つの要素を1度に取得できます。逆に、終点のインデックス番号を省略して、

ls[2:]

とすると、今度は、

["c", "e", "d"]

のように、インデックス番号が2の要素から最後の要素までを1度に取得することができます。さらに、始点と終点の両方を省略すると、すべての要素を取得できます。

スライスは、始点と終点を指定できるだけではなく、飛び飛びの値を取得することもできます。そのためには、コロンをもう1つ追加して、

始点のインデックス番号 : 終点のインデックス番号 : スキップする数+1

のようにします。スキップを指定しない場合は、

始点のインデックス番号 : 終点のインデックス番号 : 0+1

と同じことを意味しています。上のlsというリストの場合に、1つ飛びの値を取得したい場合には

ls[::2]

のようにします。こうすると、

["a", "c", "d"]

という1つ飛びのリストが返ってきます。

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは、実際に書いてみましょう。対話型で以下のコードを1行ずつ実行してみましょう。

リストの用意

>>> ls = ["a", "b", "c", "d", "e"]

インデックス番号での取得

>>> ls[2]

スライスでの取得

>>> ls[2:5]

スライスで1個飛ばしで取得

>>> ls[:4:2]

それぞれの方法でどのような要素が得られるか考えながら実行してみると、スライスの使い方がわかるかと思います。

まとめ

以上、この記事では、Pythonにおけるスライスの使い方について解説しました。スライスの知識は、Pythonを扱う上で欠かせないものなので、しっかりと覚えておくと良いでしょう。

監修してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。