icon
icon

Pythonのスライスオブジェクトについて現役エンジニアが解説【初心者向け】

初心者向けにPythonのスライスオブジェクトについて現役エンジニアが解説しています。スライスオブジェクトとはシーケンス型(リスト、タプル、文字列など)の一部をインデックスを指定して切り取る操作ができるオブジェクトです。スライスの開始位置や終了位置を指定することができるでしょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonのスライスオブジェクトについて、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

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

 

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

 

田島悠介

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

大石ゆかり

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

田島悠介

Pythonのスライスオブジェクトについて詳しく説明していくね!

大石ゆかり

お願いします!

 

スライスオブジェクトとは

Pythonのスライスオブジェクトとは、Python標準のライブラリの一つで、シーケンス型(リスト、タプル、文字列など)の一部をインデックスを指定して切り取る操作が可能です。

リストや文字の一部分を切り出したい時や文字の並びを反転させたり等の処理ができます。

 

スライスオブジェクトの使い方

スライスオブジェクトは、下記文法で使用可能です。

a [ start : stop : step ]

start(int):スライス開始位置
stop(int):スライス終了位置
step(int):スライス間隔( デフォルト:1)

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

実際に書いてみよう

文字列”abcdefg”とリスト[1,2,3,4,5,6,7]それぞれをスライスする方法について、サンプルコードを例に実際に書いていきましょう。

サンプルコード

# 文字列の場合
a = 'abcdefg'

# 文字列'abcdefg'から'cdef'をスライス
print(a[2:6])
# 文字列'abcdefg'から1文字間隔でスライス
print(a[::2])

# リストの場合
b = [1,2,3,4,5,6,7]

# リスト[1,2,3,4,5,6,7]から[3,4,5]をスライス
print(b[2:5])
# リスト[1,2,3,4,5,6,7]から1データ間隔でスライス
print(b[::2])

 

実行結果

cdef
aceg
[3, 4, 5]
[1, 3, 5, 7]

 

解説

Pythonでの文字列・リストのインデックスはスタート位置が0から始まることを意識しましょう。

 

文字列のスライスについて解説していきます。

文字列のスライスはコード 1-7行目の部分です。

今回は”abcdefg”という合計7文字の文字列なのでインデックスは0-6です。

コード5行目では、文字列”abcdefg”から”cdef”をスライスしています。

 

この場合のインデックスはstartが2、stopが6となるでしょう。

コード6行目では、文字列”abcdefg”を1文字間隔空けてスライスしています。

この場合のインデックスはstart・stopともに設定なしで、stepが2となります。

(インデックスで0,2,4,6にあたる文字がスライスされます。)

 

リストのスライスについても、基本的には文字列のスライスと同様に行うことが可能です。

コード13行目では、リスト[1,2,3,4,5,6,7]から[3,4,5]をスライスしています。

この場合のインデックスはstartが2、stopが5です。

コード15行目では、リスト[1,2,3,4,5,6,7]から1データ間隔空けてスライスしています。

この場合のインデックスもstart・stopともに設定なしでstepが2となります。

実行結果では、それぞれがスライスされた結果が出力されていることが確認できるでしょう。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

今回はPythonのスライスオブジェクトについて紹介しました。

そして、スライスオブジェクトで最も注意しなければならない点はインデックスの取り扱いです。

普段の生活で文字数を数える場合は1からスタートするのに対し、Pythonのインデックスは0からスタートします。

この間隔を意識しなければ、インデックス操作でエラーを起こしやすいのでしっかりと覚えておきましょう。

 

執筆してくれたメンター

菅繕久(すがよしひこ)

現在はフリーランスのエンジニアをしていてプログラミング歴は8年目になります。

普段は Python、FileMaker等を使って様々な業務で活用できるIoTプロダクトRPAツールを作成しています。

開発実績としては、業務自動化ツール(在庫管理・発注・ファイル操作 etc)、電子カルテシステム、ロボット用プログラムなどがあります。
TechAcademyではPythonコースを担当しております。

 

大石ゆかり

Pythonのスライスオブジェクトについてよく分かったので良かったです!

田島悠介

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

大石ゆかり

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

 

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する