コース一覧
    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分

    リストの追加と削除

    append と新しいリスト

    1 件増えるたびに書き直すのはつらい

    おこづかい帳の記録は、買い物のたびに 1 件増えます。増えるたびにリストの中身を書き直していては、プログラムにする意味がありません。すでにあるリストのうしろに値を 1 つ足す道具が append です。

    Python

    items = ["りんご", "みかん"]
    items.append("ノート")
    print(items)

    ['りんご', 'みかん', 'ノート'] と表示されます。リスト.append(値) のようにドットでつないで呼ぶ形を メソッド と呼びます。

    気をつける点が 1 つあります。append は元のリストを書き換えるだけで、新しいリストを返しません。new = items.append("ノート") と書くと new には None が入ります。追加した結果を使いたいときは、append を呼んだあとの items を見ます。

    何番目にあるかなんて覚えていない

    打ち間違えた記録を消したいとき、それが何番目かを数えるのは面倒です。remove は位置ではなく 値 を指定して消します。

    Python

    basket = ["パン", "牛乳", "パン"]
    basket.remove("パン")
    print(basket)

    ['牛乳', 'パン'] になります。消えるのは最初に一致した 1 件だけで、同じ値がもう 1 つ残っていても全部は消えません。

    無い値を指定すると ValueError が起きて、そこでプログラムが止まります。止めたくなければ、消す前に in で入っているかどうかを確かめます。

    Python

    if "たまご" in basket:
        basket.remove("たまご")

    in は第 3 章で条件式に使ったものと同じです。リストに対しては値の有無を調べます。

    渡したリストが、呼び出し元でも変わっている

    append と remove の「元を書き換える」という性質は、関数に渡したときにはっきり表に出ます。

    Python

    def add_tag(tags, tag):
        tags.append(tag)
    
    tags = ["下書き"]
    add_tag(tags, "公開")
    print(tags)

    ['下書き', '公開'] と出ます。add_tag は何も return していないのに、呼び出した側の tags が増えています。リストを渡すと、中身の写しではなく 同じ入れ物そのもの が渡るからです。関数の中で書き換えれば、外にも同じ変化が起きます。

    便利でもあり、事故のもとでもあります。元の並びを残しておきたいときは、書き換える前に別のリストを用意します。

    やってみよう

    関数 manage_list(items, add_item, remove_item) を実装してください。items の末尾に add_item を追加し、そのあと remove_item がリストに入っているときだけ 1 件取り除いて、最後のリストを return します。

    remove_item が入っていないときは何も消さず、追加だけした状態を返します。追加してから削除する、という順番も守ってください。

    要件

    1. 関数名は manage_list で、引数は items と add_item と remove_item の3つ
    2. 先に add_item を append でリストの末尾に追加する
    3. remove_item がリストに含まれているときだけ remove で1件削除する
    4. 最後のリストを return する

    ヒント

    追加は items.append(add_item) と書きます

    存在確認は if remove_item in items: です

    remove は無い値を指定すると ValueError で止まるので、必ず in で確かめてから呼びます

    append の戻り値は None なので、items = items.append(...) と書いてはいけません

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

    関連レッスン

    • スライス

      リストの一部を切り出すスライスを覚え、支出の直近3件を取り出す

    • 辞書の基本

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

    • 辞書を走査

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

    • keyでソート

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

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

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

    • リスト順序付きで複数の値を扱うデータ構造
    • メソッドクラスに属する関数
    • 関数処理に名前を付けて再利用できる単位
    • 引数位置引数=順番で渡す。
    main.py
    エディタを読み込んでいます

    メモ

    リストの追加と削除

    ⌘S で保存