Pythonで指定した位置に要素を追加するクラスを定義する

スポンサーリンク

Pythonで指定した位置に要素を追加するクラスを定義し、実装してみます。

■今回の環境(Python)

今回のPythonは、バージョン3.9.16を用いる。(なお、Google Colaboratory(Google Colab)を使用。)

■指定した位置に要素を追加するクラスの定義

では、早速指定した位置に要素を追加するクラスを定義するために、コードを書いていきます。

■コード

class MyList:
    def __init__(self, lst):
        self.lst = lst

    def display(self):
        print(self.lst)
        
    def insert(self, index, elem):
        self.lst.insert(index, elem)        

my_list = MyList([1, 2, 3, 4, 5])

my_list.insert(2, "テスト太郎")

my_list.display()

今回はMyListというオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。このクラスは、定義後、クラス内にdef文を用いて’__init__’と記述し、コンストラクタを使います。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてlstを設定します。なお、最初の「self(自己)」という引数,パラメータを介して、「lst」というクラスのインスタンス変数が初期化されます。この時にself(自己)に対してドット演算子( . )を用いて「lst」を指定します。

次にdef文を用いてdisplayというメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。このメソッドが呼び出された時の処理として、全メソッドからアクセス可能なインスタンス変数(self.lst)の情報をprint()を用いて出力させるという処理になります。

次にdef文を用いてinsertというメソッドを定義します。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてindexを設定し、第3の引数,パラメータとしてelemを設定します。

このメソッドが呼び出された時の処理として、全メソッドからアクセス可能なインスタンス変数(self.lst)に対して(.)ドット演算子を用いて、insert()を用います。括弧内には、第1の引数,パラメータとしてindex(追加する要素の位置をインデックスで指定)を渡し、第2の引数,パラメータとしてelem(追加する要素)を渡します。これでリスト内で指定した位置に要素が追加されるという処理になります。

その後、my_listという変数を定義し、その中でMyList()を用います。これでインスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。この時に括弧内に第1の引数,パラメータとして”[ ]”角括弧を用いてリストを定義し、その中に要素(数値)を格納して渡します。

渡した後に、作成したオブジェクトであるmy_listに対して(.)ドット演算子を用いてinsert()を呼び出します。この時に括弧内に第1の引数,パラメータとして追加する要素の位置をインデックスで指定するために、今回は「2」を渡し第2の引数,パラメータとして、追加する要素で今回は「テスト太郎」を渡します。

最後に、作成したオブジェクトであるmy_listに対して(.)ドット演算子を用いてdisplay()を呼び出します。

■実行・検証

このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、指定した位置に要素を追加するクラスを定義し、作成されたオブジェクトに対してリストを渡し、指定した位置に要素を追加。追加後、要素が追加されたリストを出力させることができました。

コメント

タイトルとURLをコピーしました