Python の基本データ型では、1つの値をシンボル名で保存することができます。これは数学の変数表記にほぼ沿っています。ある意味、名前に値が割り当てられているので、実際の値やコンピュータのメモリ上のアドレスを覚えておく必要はなく、単純でわかりやすい名前だけでいいのです。
しかし、1つの変数名で複数の値を格納する場合、基本的なデータ型では対応できません。より複雑なデータ構造を使用する必要があります。Pythonには、同じ名前の下に値のコレクションを格納するための4つのデータ型があります – タプル、セット、辞書、およびリスト。この記事では後者に焦点を当てます。
リストは、他のプログラミング言語における配列に似たPythonのデータ型です。同じ名前の値のコレクションを順番に格納します。また、重複した値や、保存されている要素の値を変更することができます。リストと通常の配列の唯一の違いは、リストのすべての要素が同じデータ型である必要がないことです(異種混在型)。例えば、あるリストには、整数値、浮動小数点数、文字列、他のリスト、その他のデータ型の要素が含まれることがあります。
example_list = [1, 3.14, 'abcd', [4, 3, 2, 1]]
注:Pythonのリストは、2つの角括弧 [...]
の間に要素を列挙することで作成します。各要素はカンマ – ,
で区切られます。Pythonにはリストとは別に array
という型があり、リストと混同しないように注意しましょう。
このガイドでは、PythonでListの末尾に要素を追加する方法、リストを結合する方法などを append()
メソッドを用いて説明し、Listに要素を追加する他の方法 – extend()
や insert()
と比較します。
append() を使って Python のリストに要素を追加する方法
List に要素を追加するということは、既存の List の末尾にそれらの要素を追加することと同じです。Python はそれを実現するための方法をいくつか提供していますが、そのタスクのために特別に作られたメソッドが append()
です。これは非常にわかりやすい構文を持っています。
example_list.append(element)
このコードでは、 element
を example_list
(list
型) の末尾に追加しています。前にも述べたように、リストにはさまざまなデータ型の要素を含めることができます。したがって、 element
には、 int
, float
, str
, list
, tuple
など、任意のデータ型を指定することができます。
以下のセクションでは、個々の要素をリストに追加する方法と、あるリストを別のリストに追加する方法を説明する、いくつかの実用的な例について見ていきます。
注:以下の例では、異なるタイプの要素を含むListを使用しています。
Pythonのリストの末尾に1つの要素を追加する方法
Python の append()
メソッドの主な目的は、1つの要素を追加することです。例えば、次のようなリストがあるとします。
example_list = [1, 3.14, 'abcd']
次のようにして、 exampe_list
の最後に 5
を追加します。
example_lsit.append(5)
これで、example_list
の末尾に 5
が追加されたことになります。
[1, 3.14, 'abcd', 5]
Pythonでリストを別のリストに追加する方法
2つのリストがあり、一方をもう一方に追加したい場合を想定します。
example_list = [1, 3.14, 'abcd']
secondary_list = [4, 3, 2, 1]
append()メソッドは、1回のメソッドコールで2つのリストを一緒に追加する方法を提供しません。もし
append()を使って2つのリストを追加しようとすると、
secondary_list全体が
example_list` の1つの要素として追加され、ネストしたリストが作成されます。
example_list.append(secondary_list)
print(example_list)
ここで、example_list
には次のような要素が含まれます。これは、おそらく最初に望んでいたものではありません。
[1, 3.14, 'abcd', [4, 3, 2, 1]]
append()` を使用してあるリストを別のリストに追加するには、追加したいリストのすべての要素を繰り返し処理し、それぞれの要素を元のリストに追加します。
for element in secondary_list:
example_list.append(element)
print(example_list)
この方法では、secondary_list
を example_list
の最後に追加しています。
[1, 3.14, 'abcd', 4, 3, 2, 1]
Pythonにおけるappend()の代用品
Python の List には、 append()
以外にも要素を追加するためのメソッドがいくつか用意されています。最も顕著なのは extend()
と insert()
です。以下のサブセクションでは、それらと append()
メソッドとの違いについて説明します。
append() vs extend()
これまでの節で見てきたように、append()
はリストの末尾に 1 つの要素を追加するためのものです。一方、extend()
はリストの末尾に複数の要素を追加するために使用されます。それでは、extend()
がどのように動作するのか見てみましょう。
example_list = [1, 3.14, 'abcd']
secondary_list = [4, 3, 2, 1]
example_list.extend(secondary_list)
print(example_list)
出力します。
出力: “`
[1, 3.14, ‘abcd’, 4, 3, 2, 1]
extend()` は一回の呼び出しで二つのリストを追加し、 `append()` は追加したいリストの各要素に対して一回だけ呼び出す必要があることに注意してください! `extend()` は、リスト内の各要素を追加するために使用します。代替案として覚えておくと便利なメソッドです。
#### append() vs insert()
append()` を使ってリストの特定の場所に要素を挿入する方法はなく、自動的にリストの末尾に追加されます。そこで登場したのが `insert()` です。
append()` や `extend()` とは異なり、2つの引数を受け取ります。1つは挿入したい要素で、もう1つはリスト内のその要素のインデックスです。
例えば、 `'asdf'` を `example_list` の最後に追加したい場合は、これまでのセクションで見てきたように、 `example_lsit.append('asdf')` を使用することになります。しかし、特定の場所、例えば `3.14` と `'abcd'` の間に追加したい場合は、 `insert()` を使用しなければなりません。
example_list = [1, 3.14, ‘abcd’]
Insert element asdf
on the index 2
example_list.insert(2, ‘asdf’)
print(example_list)
この結果、以下のようになります。
[1, 3.14, ‘asdf’,’abcd’]
“`
元のリストと結果のリストのインデックスの違いに注意してください。元のリスト example_list
では、インデックス 2
にある要素は 'abcd'
です。asdf’を追加した後では、インデックス
2にあり、
‘abcd’はインデックス
3` に移動しています。
結論
このガイドを読んだ後は、PythonのListに対する append()
メソッドの使い方と、Listに要素を追加する他のPythonメソッドとの比較について、より深く理解できるようになるはずです。
これらのメソッドのより詳細な比較については、次のガイド – Python Listsにおけるappend() vs extend() vs insert()をぜひご覧ください。
>