python pythonコード集 python python grammar 非エンジニア向け

【Python Coding】リストに要素を追加する方法を解説

こんにちは、TAKです。
今回は、pythonの基本的な文法の一つである「リスト」の使い方について紹介していきます。

具体的には、作成したリストに「新しい要素を追加」する方法を「2つ」、シンプルな具体例を交えて解説していきたいと思います。

【こんな人に読んで欲しい記事です】

● リストに要素を追加する方法を知りたい方

● pythonの文法「リスト」について基本的な理解を深めたい方

リストに要素を追加する方法①|append

リストに要素を追加する方法の一つ目は、「append」を使った方法です。
「append」を用いることで、リストの「末尾」に新たな要素を加えることが出来る点がポイントです。

appendの使い方をコードで確認する前に、0から9の数値で構成されたシンプルなリストを用意します。

0から9で構成されたシンプルなリスト

このシンプルなリストに任意の数値を指定し、リストに要素を追加していきます。

以下コード例では、ユーザーから入力値を受け取れるように「input」を用いています。また、そのままだと文字列型として認識されるため、「int」によって数値型に変換しています。

任意の数値を指定(この例では「100」を指定)

コード2行目にあるように、「list.append(要素)」によって追加したい要素を末尾に加えることが可能となります。上記の結果、リストを格納している変数「lis1」がどう変化したかを見てみましょう。

「append」を適用した後のリストの内容

すると、変数「lis1」の末尾に「100」が追加されているのがわかるかと思います。
このように、「末尾」に要素を追加したい時に使える方法が「append」という方法です。

リストに要素を追加する方法②|insert

リストに要素を追加する方法の二つ目は、「insert」を使った方法です。
「insert」を用いることで、リストの「任意の場所」に新たな要素を加えることが出来る点がポイントです。

先ほどのappendが「末尾」に追加だったのに対して、insertは指定した「任意の場所」に追加出来る点が異なります。「任意の場所」と表現していますが、リストの最初や末尾を指定することも可能です。

先ほど作った変数「lis1」をそのまま利用して、insertの使い方を見ていきましょう。
以下のコード例は、「任意の数値」を「リストの3番目」に指定した内容となっています。

任意の数値(999)をリストの「3」番目に追加

コード2行目にあるように、「list.insert(X,要素)」によってリストの「X番目」に「要素」を追加することが可能となります。変数「lis1」がどのようになったかを見てみましょう。

「insert」を適用した後のリストの内容

すると、変数「lis1」の「3番目」の箇所に「999」が追加されているのがわかるかと思います。
このように、「任意の場所」に要素を追加したい時に使える方法が「insert」という方法です。

appendを使った適用例

最後に、「append」を用いた具体例を紹介したいと思います。

「なんでinsertじゃなくてappendなの?」と思われる方もいるかもしれませんが、「append」の方がよく使われるからです。むしろ「insert」を使う機会は(個人的には)ほとんどないくらいです。

その理由としては、「リスト型」は「辞書型」と異なり「順序に意味を持つデータ型」である以上、順序に変化を生じさせるinsertのニーズがあまりないからかなと個人的には解釈しています。

データサイエンスなどの領域でも、「空のリスト」を用意してそこに要素(例えばスコア結果)を追加していく方法は頻繁に使われますので、ここでも2つほど紹介していきたいと思います。


【appendの適用例①】 空のリスト(fruits変数)に4つのfruitsをforループで追加

【appendの適用例②】 空のリスト(score_list変数)に得点に応じたスコアをforループで追加

1つ目の例は、文字列を用いた例です。
先ほどまでは「数値型」を使っていましたが、当然「文字型」でも使える点を確認しておいてください。

以下は、空のリストを用意しておいて、forループで各要素を追加している内容となります。

4つのフルーツ名をforループで回し、fruitsリストに格納しているコード
fruits変数に各fruitが格納されていることが確認出来ますね

2つ目の例は、関数を組み込んだ例です。
「100」から「40」のポイント(得点)を自作関数によりスコア(A~C)に変換し、そのスコア結果をリストに格納することを目的としています。

ポイントに応じてスコアを「A」~「C」で判定する関数
pointに応じてscoreを付与し、score_listに格納しているコード
score_listの結果

このように、forループや関数と組み合わせて「append」を使う方法はよく出てくるので、是非知っておいてください。なお、関数部分では「三項演算子」という方法を用いているので、「関数(cal_score)の部分が今一つ理解出来ない」という方は、以下記事を参考にしてみてください。

まとめ

今回は、pythonの基本文法の一つである「リスト」に要素を追加する方法を紹介してきました。

中でも、「append」を用いた方法はよく使われる方法なので、forループと合わせて使えるようにしてみてください。

では今回はこのへんで。