Pythonのシーケンス型の演算子の使い方【初心者向け】
初心者向けにPythonのシーケンス型の演算子の使い方について解説しています。シーケンス型とはリストや文字列のような順番のある要素の集まりを指します。要素の操作を行うスライスについてサンプルを見ながら学習しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonのシーケンス型の演算子の使い方について解説します。
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
シーケンス型の演算子の使い方について詳しく説明していくね!
お願いします!
シーケンス型とは
シーケンス型とは、複数の要素をまとめて扱える型のことです。一般的にプログラミング言語では「配列」とも言います。 Python では以下のシーケンス型が用意されています。
- リスト(list)
- タプル(tuple)
- レンジ(range)
- 文字列(string)
シーケンスは以下のようなイメージです。
これを Python のプログラムで表現すると以下のようになります。sという変数がシーケンス型になります。
s = "Pythonの世界へようこそ"
シーケンス型については公式ドキュメントも参考にしてください。
シーケンス型の演算子の使い方
シーケンス型には要素を抜き出したり置換したりする「スライス」という機能が用意されています。スライスの指定の方法は以下の通りです。
s[開始: 終了: ステップ]
開始、終了、ステップのいずれも省略できます。全てを省略することはできません。開始、終了、ステップにはマイナスの値を指定することができます。マイナスは後方から指定するという意味になります。
マイナスの指定はややこしいので、分からなくなったら下の図を参考にしてください。
実際に書いてみよう
今回のサンプルプログラムでは、リストをもとに、スライスの方法を確認します。実行は Python インタプリタで行います。はじめにもととなるリストを用意します。
s = list("Pythonの世界へようこそ") print(s)
実行結果は以下のようになります。
['P', 'y', 't', 'h', 'o', 'n', 'の', '世', '界', 'へ', 'よ', 'う', 'こ', 'そ']
それでは、1つの要素を抜き出してみましょう。1つの要素を抜き出すには開始のみを指定します。
print(s[3]) print(s[-2]) # マイナスで指定
実行結果は以下のようになります。マイナスは後方から指定するという意味でしたね。
h こ
次に複数の要素を抜き出してみましょう。複数の要素を抜き出すには開始と終了、または終了のみを指定します。
print(s[3:5]) print(s[-5:-2]) # マイナスで指定 print(s[:-10]) # 終了のみを指定
実行結果は以下のようになります。
['h', 'o'] ['へ', 'よ', 'う'] ['P', 'y', 't', 'h']
この時の注意点としては、要素の前後を正しく指定することです。後方からの指定であっても「開始≦終了」となるように指定します。例えば以下は「開始>終了」となった誤った例です。
print(s[-2:-5])
実行結果は以下のようになります。該当する要素が無い場合は空のシーケンスが返ります。
[]
最後にステップを指定してみましょう。
print(s[1:10:2]) print(s[::3]) # 開始と終了を省略 print(s[::-1]) # 開始と終了を省略しマイナスを指定
実行結果は以下のようになります。3つ目の開始と終了を省略しマイナスを指定するとシーケンスが反転します。よく使う方法ですので覚えておきましょう。
['y', 'h', 'n', '世', 'へ'] ['P', 'h', 'の', 'へ', 'こ'] ['そ', 'こ', 'う', 'よ', 'へ', '界', '世', 'の', 'n', 'o', 'h', 't', 'y', 'P']
この記事を監修してくれた方
太田和樹(おおたかずき) 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。