Pythonのlistに要素や配列を追加したい…
appendとextendの使い方がよくわからない…
こんな疑問を解決します。今回はPythonのlistにappendとextendを使って要素やlistを追加することについて解説します。
この記事の目的は以下の内容を理解することです。
・listへの追加方法を理解する
・appendとextendの使い分けができるようになる
Pythonでlistに追加する方法として、ネットで検索すればすぐに見つかるのが、appendとextendです。
それぞれの機能をよく理解しておくことで、データをまとめやすくなり、スムーズなコーディングができるようになります。
今回の内容は、私がTwitterAPIを使って収集したツイートをまとめる際によくわからなかったので、appendとextendについて調べてみたことです。
この記事を読んで、appendとextendを使い分けられるようになり、listの扱い方がわかっていただけたら幸いです。
■Python listへ追加する方法【1次元配列】
listへ追加するメソッド、append()とextend()についてまとめていきます。
始めに1次元配列での説明をした後に、2次元配列、3次元配列を例に挙げて説明したいと思います。append()とextend()を完全に理解しておきたい方はぜひ学んでいってください。
・append():要素を追加
append()は、( )内に記述された要素をそのままlistの末尾へ追加します。
In:1
1 2 |
list = [1, 2, 3] list.append("text") |
Out:1
1 |
[1, 2, 3, 'text'] |
上の例では文字列”text”がlistに追加されました。
listへ別のlistを追加
また、append()は、( )内の要素をそのままlistへ追加するので、以下のように別のlistをlistの形を保って追加することができます。
In:2
1 2 |
list = [1, 2, 3] list.append([4, 5, 6]) |
Out:2
1 |
[1, 2, 3, [4, 5, 6]] |
append()の( )内には1つの要素だけしか記述できない
append()を使う際の注意点です。append()の( )内には必ず1つの要素のみを記述する必要があります。
例えば以下のように複数の要素を記述すると、errorが返ってきます。
In:3
1 2 |
list = [1, 2, 3] list.append("test", 4) |
Out:3
1 2 |
append() takes exactly one argument (2 given) //append() は1つの要素のみを取得する(2つの要素が与えられました) |
append() takes exactly one argument (2 given)のエラーが返ってきた場合は、append()の( )に複数の要素が記述されていることになりますので、確認してみてください。
以上のように、append()を使えば( )内の要素をそのままlist末尾へ追加できることが確認できたと思います。
1つの要素をそのまま追加したい場合にはこちらを使いましょう。
append()のまとめ
・append()の( )内の1つの要素をそのままlist末尾へ追加する
・append()の( )内には複数の要素を記述できない
・extend():リスト内の要素を追加
次にextend()です。extend()は、( )内にlistを記述し、そのlist内の要素1つ1つを追加します。
In:4
1 2 |
list = [1, 2, 3] list.extend([4, 5, 6]) |
Out:4
1 |
[1, 2, 3, 4, 5, 6] |
extend()の( )に記述されたlistの要素が全て追加されているのが確認できたと思います。
また、extend()もappend()と同様に、extend()の( )内には1つのlistしか記述できません。
In:5
1 2 |
list = [1, 2, 3] list.extend([4, 5, 6], [7, 8, 9]) |
Out:5
1 2 |
extend() takes exactly one argument (2 given) //extend()には1つの要素(list型)しか記述できない |
extend() takes exactly one argument (2 given)のエラーが返ってきます。
extend()のまとめ
・extend()の( )内にはlistを記述する
・( )内に記述したlist内の要素が、1つずつ追加される
以上がappend()とextend()の基本的な使い方になります。
以下ではappend()とextend()を使ってlistを追加し、多次元配列をつくる方法を紹介します。
■append()とextend()を使ったlistの扱い方【多次元配列】
上で説明したappend()とextend()を使えば、多次元配列にlistごと追加できます。
・listに別のlistを追加
append()を使って2次元配列にlistを追加すると以下のようになります。
In:6
1 2 |
list = [[1, 2, 3]] list.append([4, 5, 6]) |
Out:6
1 |
[[1, 2, 3], [4, 5, 6]] |
extend()を使って2次元配列へlistを追加するには以下の通りです。
In:7
1 2 |
list = [[1, 2, 3]] list.extend([[4, 5, 6]]) |
Out:7
1 |
[[1, 2, 3], [4, 5, 6]] |
上記のIn:6とIn:7はどちらも[4, 5, 6]のlistをそのまま追加していますが、視覚的にもわかりやすいのはIn:6のappend()を使う方法ですよね。
このようにlistを追加する際はappend()とextend()両方が使えるので、使うときはどちらがいいか考えてから使いましょう。
個人的な感覚では、とりあえずappend()を使った方が、コードがスッキリする印象があります。
・多次元配列のlist内の要素へ追加
append()とextend()を使う際に、多次元配列の追加したい要素を指定すれば要素内への追加も可能です。
In:8
1 2 |
list = [[1, 2, 3]] list[0].extend([4, 5, 6]) |
↑listの[0]番目を指定
Out:8
1 |
[[1, 2, 3, 4, 5, 6]] |
■まとめ
いかがでしたでしょうか。Pythonでlistに追加する方法が学んでいただけたら幸いです。
append()とextend()の使い分けができるようになれば、データ整理などが楽に行えてコーディングにも集中できるようになるのでぜひ使って覚えておきましょう!
以上になります。最後まで読んでいただきありがとうございました。
PythonでDeep Learningしたいならゼロから作るDeep Learningがおすすめ!
ネット検索だけではなかなか理解できないニューラルネットワークについての知識が身に付きます。