Pythonで複数のデータをまとめて取り扱いたい時に、リストを使用することはよくあると思います。
プログラミング全般では主に配列と呼ばれる機能で、Pythonを扱う上でも必須の機能です。
リストには、様々なメソッドが機能として用意されています。
今回はその中から、リストに要素を新しく追加したい場合に活用できる「append」メソッドについて紹介したいと思います。
基本的な使い方から応用的な内容まで詳しく解説していきますので、ぜひ最後まで目を通してみてくださいね!
Pythonのappendメソッドとは?
appendメソッドは、リストの末尾に要素を新しく追加するメソッドです。
リストを使用する際に扱うデータが後から増減するケースは往々にしてあるため、使う機会の多いメソッドの一つでもあります。
appendメソッドの基本的な使い方
まずは、appendメソッドの基本的な使い方について説明していきます。
メソッドを使う際の構文は次のとおりです。
【基本構文】
リスト名.append(追加する要素)
()の中に指定した値が新しい要素として追加されます。
以下のサンプルコードで、実際の動きを見てみましょう。
【サンプルコード】
sampleList = [10,20,30]
sampleList.append(40)
print(sampleList)
【実行結果】
[10, 20, 30, 40]
メソッドの引数に指定した値が、リストの末尾に追加されているのが分かると思います。
これが、appendメソッドの基本的な使い方です。
上記のコードの通り、使い方自体はとても簡単なappendメソッドですが、このメソッドでは要素の追加する位置を指定することはできません。
もし、末尾以外の任意の場所に要素を追加したい場合には、insertメソッドを使用します。
【insertメソッドの基本構文】
リスト名.insert(要素を追加する位置, 追加する値)
【insertメソッドを使用する場合のサンプルコード】
sampleList = [10,20,30]
sampleList.insert(1,100)
print(sampleList)
【実行結果】
[10, 100, 20, 30]
insertメソッドの引数には、要素を追加する位置と値をそれぞれ指定します。
リストの要素は0から順に数えるため、実行結果では左から2番目の位置に要素が追加されています。
insertメソッドを使用した場合、指定した位置以降にあった元の要素は追加した要素の後ろにずらされます。
このように、リストの末尾に要素を追加したい場合はappendメソッド、それ以外はinsertメソッドといったように使い分けることができます。
appendメソッドとextendメソッドとの違いは?
指定のリストに要素を追加することができるappendメソッドですが、追加する要素がリストだった場合にリスト同士の結合はされません。
下記のサンプルコードを例に見てみましょう。
【サンプルコード】
sampleList = [10,20,30]
sampleList.append([40,50])
print(sampleList)
【実行結果】
[10, 20, 30, [40, 50]]
実行結果を見ると、リストが入れ子状態になっているのが分かると思います。
このように、appendメソッドでリストを追加した場合、リスト全体を一つの要素と見なして追加するため、リスト同士の結合は行われません。
リスト内の要素だけを別のリストに結合させたい場合は、appendメソッドではなくextendメソッドを使用します。
以下の例を見てみましょう。
【サンプルコード】
sampleList = [10,20,30]
sampleList.extend([40,50])
print(sampleList)
【実行結果】
[10, 20, 30, 40, 50]
先ほど見たサンプルコードのメソッドの部分だけを変更し、違いが分かりやすいようにしました。
上記の結果の通り、extendメソッドを使用して追加した場合は、リスト内の各要素が結合されて一つのリストになります。
また、extendメソッドの他にも、+演算子を使用してリストを結合する方法もあります。
【サンプルコード】
sampleList = [10,20,30]
# リストを新しく作成
addList = sampleList + [40,50]
# 既存のリストに追加
sampleList += [100,110]
print(addList)
print(sampleList)
【実行結果】
[10, 20, 30, 40, 50]
[10, 20, 30, 100, 110]
演算子の使い方によって、結合した結果を新しいリストとして取得するか、既存のリストに要素を追加するかが変わります。状況に応じて使い分けるといいでしょう。
forループを使ってappendで複数の要素を追加する
ここまで紹介した方法は、いずれもリスト内の要素を全て追加する場合に使用できる方法です。
要素ごとに追加するか否かを判断したい場合や、特定の法則に従ってリストを新たに作成したい場合には、for文を活用するといいでしょう。
【サンプルコード】
sampleList = [1,2,3,4,5,6,7,8,9,10]
addList = []
for num in sampleList:
if num % 2 == 0:
addList.append(num)
print(addList)
【実行結果】
[2, 4, 6, 8, 10]
上記のサンプルコードでは、追加元のリスト内の各要素をfor文で取り出し、値が偶数だった場合のみ空のリストに追加しています。
条件を指定してfor文で処理することで、リスト内の要素数が膨大であったとしても、この数行を書くだけで楽に処理することができます。
また、内包表記という記述方法を使用すると、この処理をさらに一行にまとめることができます。
例えば、先ほどのサンプルコードのfor文を内包表記で記述し直すと、このようになります。
【サンプルコード】
addList = [num for num in sampleList if num % 2 == 0]
内包表記を初めて知ったという方や、普段はあまり使わないという方には、内容が少し分かりづらいかもしれません。
まずは、内包表記の構文をブロックごとに分けて見てみましょう。
【内包表記の基本構文】
[(処理内容)( for (変数名) in (range もしくは リスト名) ) ( if (処理を行う条件) )]
内包表記は、要素を追加したいリストの[]内に、この構文で処理を記述します。
構文の文頭には、各ループで行う処理の内容を記述します。
サンプルコードの場合は、条件に合ったリスト元の要素をそのまま追加するため、要素が格納されている変数numを記述しています。
処理内容の次には、通常のfor文と同じように、変数名とループ回数かリスト名のどちらかを指定します。
if文を使用しない場合は、ここで記述が完了します。
最後に、末尾にif文を記述することで条件分岐を行うこともできます。
if文だけでなくif/else文も活用することができますが、その場合にはfor文と記述する順番が逆になるので注意が必要です。
【サンプルコード】
addList = [num if num % 2 == 0 else num * 10 for num in sampleList]
2次元リストにappendで要素を追加する方法は?
これまで解説してきたのは、リストが一次元の場合の使い方でした。
ここからは、2次元リストに要素を追加する場合の方法について解説していきます。
2次元リストにappendで要素を追加する基本的な方法
2次元リストに要素を追加する場合も、appendメソッドを活用することができます。
【サンプルコード】
sampleList = [[10, 20], [30, 40]]
sampleList.append([50, 60])
print(sampleList)
【実行結果】
[[10, 20], [30, 40], [50, 60]]
既に解説した通り、appendメソッドの場合はリスト全体を一要素と見なして追加するので、そのままメソッドの引数に渡すだけで2次元リストの形式を保ったまま要素を追加することができます。
反対に、extendメソッドや+演算子を使用する場合、リスト全体を要素として追加するには2次元リストで用意する必要があります。
【サンプルコード】
sampleList = [[10, 20], [30, 40]]
addList = []
# リストとして追加されない
addList = sampleList + [50, 60]
# 追加する値を2次元リストにする
sampleList.extend([[50, 60]])
print(addList)
print(sampleList)
【実行結果】
[[10, 20], [30, 40], 50, 60]
[[10, 20], [30, 40], [50, 60]]
appendとループを使用して2次元リストに要素を追加する
続いて、for文を使って2次元配列に要素を追加する方法について見ていきましょう。
まずは、空のリストに順に要素を追加する場合の一例を紹介します。
【サンプルコード】
addList = []
for i in range(1, 4):
addList.append([i, i * 10])
print(addList)
【実行結果】
[[1, 10], [2, 20], [3, 30]]
要素を追加する際は、値をリストの形式にしてから渡すようにしましょう。
上記の例では、一つのカウンタ変数を元に値を生成していますが、for文を重ねて別々の変数を活用する方法もあります。
【サンプルコード2】
addList = []
for i in range(10, 40, 10):
list = []
for j in range(1, 4):
list.append(i + j)
addList.append(list)
print(addList)
【実行結果】
[[11, 12, 13], [21, 22, 23], [31, 32, 33]]
コードの可読性との兼ね合いもあるため、多用することはお勧めできませんが、方法の一つとして覚えておくと便利です。
また、for文を使って既存のリストに要素を追加することも可能です。
【サンプルコード3】
sampleList = [[10, 20], [40, 50]]
for list in sampleList:
if list[0] == 10:
list.append(30)
else:
list.append(60)
print(sampleList)
【実行結果】
[[10, 20, 30], [40, 50, 60]]
上記の例では、変数に直接2次元リストの各要素を代入して追加していますが、カウンタ変数を使用して追加することも可能です。
【サンプルコード4】
sampleList = [[10, 20], [30, 40]]
for i in range(len(sampleList)):
sampleList[i].append(100 + i)
print(sampleList)
【実行結果】
[[10, 20, 100], [30, 40, 101]]
まとめ
いかがでしたか?今回の記事では、appendメソッドの使い方について解説をしてきました。
メソッドそのものは単純な機能ですが、insertメソッドやextendメソッドとの使い分け、for文との組み合わせなど、押さえるべきポイントはいくつかあるので、様々な場面で活用しながらメソッドの使い方に慣れていってくださいね!
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。