Python

【5分で分かる】手を動かして解説!Pythonのappendの使い方まとめ!

append
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、pythonでよく使われる”list型(リスト)”に要素を追加するappendメソッドについて解説していきます!データ型を自在に扱い方を押さえてデータ分析に活かしていきましょう!

こんにちは!スタビジ編集部です!

この記事ではpythonでよく使われるデータ型の1つ”list型(リスト)“に要素を追加する”appendメソッド“について解説していきたいと思います!

ロボたん
ロボたん
pythonって変数の種類がいくつもあって難しいな~、、、
“[]”とか”{}”とかややこしい、、、要素を追加するって???
ウマたん
ウマたん
そうだね!データ型はpythonの初学者にとっては少し難しい所かも!

今回はその中で頻繁に使われる”list型(リスト)“を見ていくよ!

そこでは要素を追加する”appendメソッド“がとても大事なんだ!

ぜひlist型の基本についてしっかりおさえて扱えるようになっておきましょう!

list型(リスト)とは?

まずは変数のデータ型の一つ”list型(リスト)”について見ていきましょう!

Pythonの変数について

Pythonの変数は「値を格納して置く場所」というイメージを持っておくと理解しやすいと思います!

a = 1

こうすると”a”という変数に1という整数値が格納されました!

print(a)
>>1

そのため”a”を呼び出すと1が返ってきます!

また、変数に格納する値は上書きすることも出来ます!

a = 1
print(a)
a = 2
print(a)
>>1
  2

 

このように好きな値を変数に格納しておくことで、その値を変数を呼び出すことによって利用することが出来ます!

そんな変数にそれぞれ扱うデータに応じた型がPythonで用意されています!

整数を扱う”int型”や文字列を扱う”str型”など様々な方があり、状況に応じて適切な型を選択していきます!

a = 1
type(a)
>>int

type(変数)と入力するとその変数のデータ型を調べることが出来ます!

そんな変数のデータ型の一つが今回の主役の”list型”になります!

list型(リスト)について

続いてlist型について見ていきましょう!

list型は[ ]の中にカンマで数値や文字列を並べた型です!

a = [1, 2, "hello"]
type(a)
>>list

配列とも呼ばれていて、複数のデータを格納出来ます!

a = [1, 2, "hello", [3,4]]
b = []

格納するデータに指定はなく数値や文字列以外にも別のリストを格納することや空のリストを作成出来ます!

このリストから要素を取り出したい場合はインデックスを指定します!

a = [1, 2, "hello"]
a[0]
>>1

この時、リストの要素にはインデックスと呼ばれる通番が振られており、最初の要素は0番目になります!

そのため、a[0]のように記述して、aの0番目の要素を指定してあげることで1を取り出すことが出来ます!

a[-1]とマイナスの値を入れてあげることで最後尾からのインデックスが指定されます!

a = [1, 2, "hello"]
a[-1]
>>"hello"

最後尾の要素が取り出されていることが確認できました!

また、似たようなデータ型に”tuple型(タプル)“というものがあります!

a = (1,2,"hello")
type(a)
>>tuple

list型は[]で括るのに対し、tuple型は()で括っていますね!

list型とtuple型の違いは、list型は中身の要素の変更が出来ますが、tuple型では出来ない所です!

データの中身を固定値として変更したくない場合はtuple型を使ってみましょう!

ウマたん
ウマたん
list型は一つの変数にいろんな値を順番に格納できるんだね!

データ分析では一度に複数の値を扱うからこのlist型の使い方はマスターしたい!

appendメソッドとは?

さて、Pythonのlist型はtuple型と違い、要素を追加したり削除できる点が特徴です!

Pythonにはリストに利用できるメソッドが用意されており、そのメソッドを使って要素を操作していきます!

今回はそのメソッドの一つ”appendメソッド“を見ていきます!

他のメソッドについて興味がある方はPythonの公式ページを参照ください!

appendの基本

appendメソッド“はlistの最後尾に指定した要素を追加するものになります!

a = [1, 2, 3, "hello"]
a.append(3)
print(a)
>>[1, 2, 3, "hello", 3]

list.append(要素)とすることで、listの最後尾に要素が追加されたことがわかります!

文字列や別のリストを要素として追加することも出来ます!

a = [1, 2, 3, "hello"]
a.append("world")
print(a)
>>[1, 2, 3, 'hello', 'world']
a = [1, 2, 3, "hello"]
b = [4, 5, "world"]
a.append(b)
print(a)
>>[1, 2, 3, 'hello', [4, 5, 'world']]

リストに要素が追加されていることが確認できます!

ここで注意ポイントは「appendメソッド一つで追加できる要素は一つ」!

a = [1, 2, 3, "hello"]
a.append(4, 5)
print(a)
>>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-3fceacd7c15e> in <module>()
      1 a = [1, 2, 3, "hello"]
----> 2 a.append(4, 5)
      3 print(a)

TypeError: append() takes exactly one argument (2 given)

複数の要素を追加しようとするとエラーになります!

複数の要素を追加した場合はappendメソッドを繰り返し使うか次に説明するextendメソッドを使う方法があります!

extendメソッドとinsertメソッド

listに要素を追加する方法はappendメソッド以外にもあります!

それが”extendメソッド“と”insert”メソッド“です!

“extendメソッド”は別のリストやタプル内の要素をリストに追加してリストを拡張する」メソッドです!

a = [1, 2, 3, "hello"]
b = [4, "world"]
a.extend(b)
print(a)
>>[1, 2, 3, 'hello', 4, 'world']

先ほどのappendでは、bというリストがそのまま要素として追加されていましたが、extendではbのリストの要素すべてがaのリストに追加されます!

a = [1, 2, 3, "hello"]
a.extend("world")
print(a)
>>[1, 2, 3, 'hello', 'w', 'o', 'r', 'l', 'd']

要素に文字列を追加すると文字の一つ一つが要素として追加されます!

複数の要素を追加したい場合、複数の要素をリストに格納してextendメソッドを使うという方法もありですね!

a = [1, 2, 3, "hello"]
a.extend(4)
print(a)
>>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-14-f62ba9e1fdbe> in <module>()
      1 a = [1, 2, 3, "hello"]
----> 2 a.extend(4)
      3 print(a)

TypeError: 'int' object is not iterable

ただ、extendメソッドはリストかタプルといったデータ型(イテラブル)しか対象に出来ないので、数字や文字列を直接追加できないので注意してください!

“insertメソッド”はリストの指定した位置に要素を追加する」メソッドです!

a = [1, 2, 3, "hello"]
a.insert(2, 4)
print(a)
>>[1, 2, 4, 3, 'hello']

list.insert(順番, 要素)とすることで、指定した順番(インデックス)の前に要素が追加されます!

先頭に追加したい場合は順番は「0」を指定しましょう!

a = [1, 2, 3, "hello"]
b = [3, "world"]
a.insert(0, b)
print(a)
>>[[3, 'world'], 1, 2, 3, 'hello']

 

ウマたん
ウマたん
appendメソッドを使うことでリストの最後尾にデータを追加できるんだね!

他にデータを追加できるextendメソッドやinsertメソッドも併せて押さえておこう

appendを使ってみよう!

では、実際にappendメソッドを使ってみましょう!

基本は「list.append(要素)」でした!

a = [1, 2, 3, "hello"]
b = [6, "LIST"]
a.append(4)
a.append("world")
a.append(b)
print(a)
>>[1, 2, 3, 'hello', 4, 'world', [6, 'LIST']]

別のリストも一つの要素として追加できるんでしたね!

続いて0~10の整数値をリストに加えていきましょう!

a = []
for i in range(11):
  a.append(i)
print(a)
>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

最初に空リスト[]を定義して、for文で0から順番にappendで追加していきました!

appendメソッドでは一つの要素しか追加できないので、for文で繰り返して複数の要素をリストに追加することが多いので押さえておきましょう!

最後に応用編として「csvファイルの中身のデータをリストで格納」していきましょう!

testフォルダにtestファイルを用意します!

テストファイルの中身はユーザーデータが入っていて名前や年齢といったデータが登録されているとしましょう!

ファイルの中身のデータをappendで空のリストdata_listに追加します!

import glob
import pandas as pd
files = glob.glob("test/*.csv")
data_list = []
for file in files:
  data_list.append(pd.read_csv(file))

data_listの中身を見ていきましょう!

この時globという関数を利用して複数のファイル名を抽出しています。

globについて知りたい方は以下の記事を参考にしてみてください!

glob
【5分で分かる】手を動かして解説!Pythonのglobの使い方まとめ! こんにちは!スタビジ編集部です! この記事では、Pythonでディレクトリに格納されたファイル名を抽出するのに便利なライブ...
[   ID    NAME  AGE
0   1    kato   19
1   2  kimura   23
2   3  suzuki   42
3   4  tanaka   11,    ID     NAME  AGE
0  12  arakawa   21
1  32     sato   17
2  44   kagawa   29
3  45     endo   34,    ID    NAME  AGE
0   6   maeda   37
1  23    baba   21
2  15   honda   10
3  55  morita   62]

少しわかりづらいですが、各ファイルの中身がそれぞれ要素としてリストに追加されていることがわかります!

print(pd.concat(data_list))
>>
   ID     NAME  AGE
0   1     kato   19
1   2   kimura   23
2   3   suzuki   42
3   4   tanaka   11
0  12  arakawa   21
1  32     sato   17
2  44   kagawa   29
3  45     endo   34
0   6    maeda   37
1  23     baba   21
2  15    honda   10
3  55   morita   62

concat関数で一つのデータフレームとして結合することで見やすくなりました!

このように複数のcsvファイルからデータを結合するときにもappndメソッドを使います!

ウマたん
ウマたん
リストに要素を追加するappendメソッドもいろんな所で利用されているね!

いろいろ手を動かして使い方をマスターしよう!

appendまとめ

ここまでlist型(リスト)とは?から始まりappendの使い方まで解説していきました!

list型(リスト)はPythonで頻出するデータ型で要素を追加したり削除できるのが特徴でした!

appendメソッド“はリストのメソッドの一つで「リストの最後尾に要素を一つする」というシンプルなものでしたが、いろんな場面で利用されます!

extendメソッドやinsertメソッドの違いにも触れながら学習してみてください!

他にもPythonについて詳しく学びたい方は以下のUdemyの講座を是非チェックしてみてください!

【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース

Udemy python

また、Pythonを勉強したいけどやり方がわからない、、、という方は以下の記事で勉強法をまとめていますので是非チェックしてみてください!

Python 勉強
【Python独学勉強法】初心者が3か月で習得できるロードマップ!当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。...
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら