コース一覧
    Pythonコレクション
    スライス

    Pythonコレクション

    リスト、辞書、集合、タプルなどのコレクションを学び、複数のデータを適切に扱えるようにします。

    1
    リストと辞書
    01. リストの追加と削除15分
    02. スライス15分
    03. 辞書の基本15分
    04. 辞書を走査15分
    05. keyでソート15分
    06. setで重複除去15分
    07. リスト内包表記15分
    08. タプルアンパック15分
    09. つくる:カテゴリ別集計15分
    10. 第7章クイズ10分

    スライス

    スライスの範囲

    50 件を全部並べても読めない

    記録が増えると、一覧に全部出しても目が滑るだけです。見たいのはたいてい最近の数件で、リストの一部だけがほしくなります。

    まず 1 件だけ取り出す書き方です。リストは先頭を 0 として番号が振られています。この番号を インデックス と呼びます。

    Python

    items = ["りんご", "みかん", "ノート", "電車代"]
    print(items[0])
    print(items[2])

    りんご と ノート が出ます。1 つ目が 0 番であることに注意します。

    範囲でほしいときは items[開始:終了] と書きます。取れるのは開始の位置から、終了の手前まで です。終了の位置そのものは入りません。

    Python

    print(items[1:3])

    ['みかん', 'ノート'] になります。1 番と 2 番の 2 件です。この書き方を スライス と呼びます。取れた件数が 1 つ足りない、多いと感じたら、まずここを疑います。

    開始を省くと先頭から、終了を省くと末尾までになります。items[:2] は最初の 2 件、items[2:] は 3 件目以降です。

    うしろから数えたい

    「最後の 1 件」を取りたいのに、そのつど件数を数えるのは面倒です。インデックスにはマイナスが使えて、-1 がいちばんうしろ、-2 がその 1 つ前を指します。

    Python

    print(items[-1])

    電車代 が出ます。マイナスの番号はスライスの開始位置にも書けるので、「うしろから数えた位置から最後まで」という切り出し方ができます。

    コロンの有無で戻り値の型が変わることも押さえておきます。items[-1] は中身が 1 つ返り、コロンを足すとリストが返ります。

    件数が足りないと落ちる、が起きない

    スライスの気持ちよさは、はみ出しても止まらないことです。

    Python

    short = ["りんご"]
    print(short[0:5])
    print(short[3:])

    ['りんご'] と [] が出ます。short[5] のように 1 件だけを無い番号で読むと IndexError で止まりますが、スライスは範囲がはみ出しても静かに、あるだけを返します。おかげで「件数が足りないときは」という場合分けを書かずに済みます。

    もう 1 つ、スライスは 新しいリスト を作って返します。元のリストは増えも減りもしません。前回の append や remove が元を書き換えたのとは正反対です。

    やってみよう

    関数 recent_three(records) を実装してください。records は支出の辞書が並んだリストです。末尾の 3 件を取り出して return します。

    3 件に満たないときは、あるだけ全部を返します。空リストのときは空リスト [] です。件数で場合分けをせず、スライスだけで書いてください。並べ替えはせず、元の順番のままにします。

    要件

    1. 関数名は recent_three で、引数は records の1つ
    2. リストの末尾3件をスライスで取り出して return する
    3. 3件に満たないときはあるだけ全部を返し、エラーにしない
    4. 元のリストの順番を保ち、並べ替えない

    ヒント

    末尾3件は records[-3:] で取れます

    スライスは範囲がはみ出してもエラーになりません。件数の場合分けは不要です

    コロンを忘れて records[-3] と書くと1件だけになってしまいます

    sorted や reverse は使いません。順番はそのままです

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

    関連レッスン

    • 辞書の基本

      キーと値で管理する辞書を覚え、支出1件を辞書として組み立てる

    • 辞書を走査

      items() でキーと値を同時に取り出し、1件の支出を行の形に整形する

    • keyでソート

      sorted の key に lambda を渡して、支出を金額の高い順に並べ替える

    • setで重複除去

      set で重複を消し、sorted で並びを固定して使ったカテゴリ一覧を作る

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • リスト順序付きで複数の値を扱うデータ構造
    • インデックスDB 検索を速くする索引
    • スライス範囲指定で部分列を取り出す記法
    • 戻り値呼び出し元への返答を表す点線矢印
    • 関数処理に名前を付けて再利用できる単位
    • 引数位置引数=順番で渡す。
    main.py
    エディタを読み込んでいます

    メモ

    スライス

    ⌘S で保存