今回のテーマはPythonのリスト操作です。
「データを追加したいだけなのに、なんかカッコ([ ])が二重になってしまった…」という経験、ありませんか?
この記事では、プログラミング初心者の方がつまずきやすい「append(アペンド)」と「extend(エクステンド)」の違いを分かりやすく解説します。
仕組みを整理して、意図しないリストの多重化を解消していきましょう。
結論:箱ごと入れるか、中身を出して並べるか
荷物をトラックに積み込む場面をイメージしてみましょう。
- append:段ボールを「箱のまま」トラックに積む。
- extend:段ボールの「中身を出して」トラックに積む。
仕組み自体はシンプルですが、ここを取り違えると後のデータ処理や集計の段階で予期せぬエラーを招く要因になります。
append:要素を「ひとかたまり」として末尾に追加する
appendは、渡されたものを「1つの要素(ひとかたまり)」として既存リストの末尾にそのまま追加します。
例えば、既存のメンバーリストへ「佐藤さん」を1名追加する場合などに適しています。
# 今いるメンバー
members = ["田中", "鈴木"]
# 佐藤さんを追加(append)
members.append("佐藤")
print(members)
# 結果: ['田中', '鈴木', '佐藤']
extend:別のリストを展開して「合体」させる
extend は、引数として渡されたリストの中身を取り出し、元のリストへ結合します。
例えば、営業1課のリストに、営業2課のメンバー全員を合流させ、1つの名簿を作成する場合に適しています。
# 営業1課
team_1 = ["田中", "鈴木"]
# 営業2課
team_2 = ["高橋", "山田"]
# チームを合体(extend)
team_1.extend(team_2)
print(team_1)
# 結果: ['田中', '鈴木', '高橋', '山田']
よくある失敗:リスト結合時にappendを使ってしまうケース
もし、リスト同士を合体させたいのに間違って、appendを使うとどうなるでしょうか?
# 営業1課
team_1 = ["田中", "鈴木"]
# 営業2課
team_2 = ["高橋", "山田"]
# リストに対してappendを実行
team_1.append(team_2)
print(team_1)
# 結果: ['田中', '鈴木', ['高橋', '山田']]
最後の [‘高橋’, ‘山田’] がリストのまま(箱のまま)入ってしまいましたね。これが「リストの入れ子(ネスト)」状態です。
このデータをそのままCSV出力したりループ処理に回したりすると、エラーや不具合の原因となります。
まとめ:使い分けの基準
| やりたいこと | 使うメソッド | イメージ |
| 単一の要素(1つの値)を追加したい | append | 箱やモノをそのまま1つポンと置く |
| 別のリストの中身を展開して合体させたい | extend | 箱を開けて中身を1つずつ並べて結合する |
この違い、最初は本当にややこしく感じるかもしれません。でも「箱のままか、中身を出すか」というルールを意識すると迷いづらくなります。
もし書き方に迷った際は、よければ本記事のコードをコピペして手元の環境で動作を確かめてみてください。
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。


コメント