2019TweetPythonのappendメソッドはリストの末尾に指定の要素を追加するメソッドです。ここではその使い方と注意点、よく聞かれることを全てまとめています。Pythonのappendメソッドの使い方Pythonのappendメソッドは次のように書きます。'''リスト.append(追加したい要素)これを使うと、元のリストに任意の要素を追加することができます。要素を追加した新しいリストを作るのではなく、元のリストに要素が追加されるという点を覚えておきましょう。例を見た方が早いので、早速見ていきましょう。appendメソッドはリストメソッドです。dict(辞書)やnumpyのarray配列、string(文字列)やtuple(タプル)、set(集合)には使えません。これらに、任意の要素を追加するには別のメソッドを使います。これについても後ほど解説します。Pythonのappendでlist(リスト)に追加するそれでは次のコードをご覧ください。list1を作り、そこにappendメソッドで要素を追加していっています。appendメソッドは元のリストに変更を加えます。要素を追加してみましょう。元のリストに要素が追加されます。続けて要素を追加します。元のリストに要素が追加されます。要素は後ろに追加します。元のリストに要素が追加されます。1]このようにPythonのappendメソッドは、元のリストの末尾に指定の要素を追加してくれます。ここでappendメソッドは新しいリストを作っているのではなく、元のリストに要素を加えていっている点にご注目ください。下図のようになっています。この点を忘れているとコードを書いている時に混乱してしまいますので注意しましょう。appendメソッドは文字列のリストにも使うことができます。以下で確認しておきましょう。文字列リストでも同じです。Pythonのappendは複数の要素を同時に追加できないなお、Pythonのappendでは複数の要素を一度に追加することはできません。次のコードでは、list1に5と6を同時に追加しようとしていますが、エラーになっています。appendメソッドの引数に同時に複数の要素を渡すことはできません。appendメソッドの引数に同時に複数の要素を渡すことはできません。given)appendメソッドで要素を追加する際は、一つずつ行いましょう。Pythonのappendとextendの違いここで混乱する方が多いPythonのappendとextendの違いに触れておきます。appendメソッドの引数には別のリストを渡すこともできます。appendの引数にリストを渡すと、それは元のリストにネスティングされて渡されます。extendメソッドでは、引数に渡したリストの要素がそのまま元のリストの末尾に追加されます。実際に確かめてみた方が早いですね。次のコードを見てみてください。appendメソッドでは別のリストを追加することもできます。要素のみを追加したい場合はextendメソッドを使います。'e']appendメソッドでは元のリストの中に、追加したリストがそのまま入って二次元リストになっています。一方でextendメソッドでは追加したリストの要素だけがそのまま末尾に追加されています。この点をしっかり覚えておきましょう。Pythonのappendはlist(リスト)以外には使えないここからはある意味蛇足ですが、勘違いする方をたまに見るので念のため解説しておきます。Pythonのappendはlist(リスト)のメソッドなので、他には使えません。他のオブジェクトで要素を追加したい場合は別の方法を使います。それぞれ見ていきましょう。Pythonのappendとtuple(タプル)Pythonのappendメソッドはタプルには使えません。タプルはイミュータブル(変更不可能)なオブジェクトのため、後から要素を追加するということがそもそも不可能なように作られているからです。タプルはイミュータブルなオブジェクトのためappendメソッドは使えません。'append'タプルに要素を追加したい場合は、例えば、次のように、その要素を追加した別の新しいタプルを作る必要があります。タプルに要素を追加するのはできないので新しいタプルを作る必要があります。Pythonのappendとstr(文字列)Pythonの文字列もイミュータブル(変更不可能)なオブジェクトのため、appendメソッドで元の文字列に変更を加えることはできません。'これは文字列'str.append('です。str.append('です。'append'代わりに次のような方法を使います。文字列では次の方法を使います。元の文字列を連結した別の文字列オブジェクトを作ります。元の文字列を連結した別の文字列オブジェクトを作ります。元の文字列を連結した別の文字列オブジェクトを作ります。print(str_e)これは文字列です。