Pythonのスライスについて現役エンジニアが解説【初心者向け】
初心者向けにPythonのスライスについて現役エンジニアが解説しています。スライスとは、リストやタプルなどのシーケンスの一部を取り出すための方法です。シーケンスに対して開始位置や終了位置や開ける感覚を指定することが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonのスライスについて、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonのスライスについて詳しく説明していくね!
お願いします!
目次
スライスとは
スライスとは、リストやタプルなどのシーケンスの一部を取り出すための方法です。
ちなみにスライスという言葉は、「スライスチーズ」や「オニオンスライス」などの単語からもイメージできるように、「切る」という意味です。つまり、リストやタプルなどのシーケンスを切って取り出すことを指します。
スライスの基本的な使い方
スライスは以下のように書くのが一般的です。
シーケンス名[開始インデックス:終了インデックス:間隔]
この際、終了インデックスの値自体は含まないので注意が必要です。たとえば、一次元のリストlist_aがあったとして、list_a[2:4:1]とするとlist_aの2番目から3番目までが取り出せるわけです。(先頭要素は0番目です。)
この辺りはfor文を書くときに用いるrange()と似たような使い方になります。
実際に書いてみよう
あまりイメージが湧いていない方も多いと思いますので、実際にコードを書いていきましょう。
たとえば、一次元のリストlist_xの3番目から7番目までを1つずつ取り出したい時には以下のようにスライスします。
>>>list_x = [6,3,5,2,7,1,8,4,9] >>>list_x[3:8:1] [2, 7, 1, 8, 4]
ここで注意して頂きたいのが、スライスをした結果が得られるだけで元のリスト自体は何も変わっていない点です。
試しにprint()で元のリストを確認してみます。
>>>print(list_x) [6, 3, 5, 2, 7, 1, 8, 4, 9]
元のリストは何も変わっていないことが確認できました。
次はスライスの省略形についてです。
スライスに慣れないうちは省略せず丁寧に書いた方が良いかと思います。しかし、開始インデックスや間隔を省略したものなども良く見受けられます。
では、省略形についても解説していきます。
用いるリストは先ほどと同じものです。
>>>list_x = [6,3,5,2,7,1,8,4,9] #開始インデックスの省略(省略すると0になる) >>>list_x[:3:1] [6, 3, 5] #終了インデックスの省略(省略すると末尾まで取り出す) >>>list_x[3::1] [2, 7, 1, 8, 4, 9] #間隔の省略(省略すると1になる) >>>list_x[2:4] [5, 2]
まとめ
この記事ではPythonのスライスについて解説しました。
Pythonではスライスを非常に良く用います。いきなり省略形を見ると「何をやっているかわからない」ということになりがちですので、まずは基本の書き方をしっかりと身につけましょう。
監修してくれたメンター
柴山真沙希(しばやままさき)
大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。子供から大人まで幅広い層を対象にプログラミングを教えている。 得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。サッカー観戦や読書が趣味である。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。