Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのextend()メソッドの使い方を初心者向けにわかりやすく解説

例えば、パーティーを開くことになって、招待したい友人のリストを作るとしましょう。このリストは、招待したい人を思い出すたびに増えていくかもしれません。

そんなときに役立つのがPythonのextend()メソッドです。extend()メソッドを使うと、リストの末尾に1つまたは複数の要素を追加できます。

この記事では、Pythonのextend()メソッドの使い方を、招待リストの例を使いながら丁寧に解説していきます。

Pythonのextend()メソッドとは?

Pythonのextend()メソッドは、Pythonのリストメソッドのひとつです。他のリストメソッドにはappend()insert()があります。これらのメソッドはすべて、Pythonでリストを操作するために使われます。

まずは、なぜ.extend()メソッドを使いたくなるのか、その理由を見ていきましょう。

Pythonの.extend()メソッドの仕組み

.extend()メソッドは、複数の要素をリストの末尾に追加することで、Pythonのリストを拡張します。構文には主に2つの書き方があります。

書き方1:引数を直接指定する

1つ目の方法は、リストに追加したい要素(「引数」と呼ばれます)を、括弧で囲んで丸括弧の中に直接記述する方法です。次の例では、2行目で新しい名前を括弧内の引数として渡しています。

invite_list = ['Shazia', 'Matt', 'Elizabeth']
invite_list.extend(['Janie','Bryce','Jaspar'])
print(invite_list)

このコードを実行すると、次のような結果が返されます。

['Shazia', 'Matt', 'Elizabeth', 'Janie', 'Bryce', 'Jaspar']

書き方2:変数を指定する

2つ目の方法は、new_namesという新しい変数を宣言し、それを丸括弧内の引数として渡す方法です。次の例では3行目で変数を指定しています。

invite_list = ['Shazia', 'Matt', 'Elizabeth']
new_names = ['Janie', 'Bryce', 'Jaspar']
invite_list.extend(new_names)
print(invite_list)

このコードでも同じ結果が得られます。

['Shazia', 'Matt', 'Elizabeth', 'Janie', 'Bryce', 'Jaspar']

Pythonのextend()メソッドを使うべきでないケース

リストの末尾に要素を1つだけ追加したい場合は、extend()メソッドの代わりにPythonのappend()メソッドを使うのが適切です。append()メソッドは、一度に1つの要素(個別のリスト項目や別のリストなど)しか追加できません。

append()を使った場合の挙動

例えば、次のコードを見てみましょう。

invite_list = ['Shazia', 'Matt', 'Elizabeth']
new_names = ['Janie', 'Bryce', 'Jaspar']
invite_list.append(new_names)
print(invite_list)

このコードの出力結果は以下のようになります。

['Shazia', 'Matt', 'Elizabeth', ['Janie', 'Bryce', 'Jaspar']]

注目してほしいのは、追加された名前(Janie、Bryce、Jaspar)が独自の角括弧で囲まれている点です。これは、append()メソッドがそれらを「1つのまとまり」として扱ったことを意味します。リストの中にネストしたリストができてしまうため、意図しない結果になることがあります。

特定の位置に挿入したい場合はinsert()を使う

リストの末尾に追加するのではなく、特定の位置に要素を挿入したい場合は、Pythonのinsert()メソッドを使用します。

Pythonでは、リストの各項目には位置(インデックス)が割り当てられています。位置は0から始まる数字で表されます。したがって、リスト['Shazia', 'Matt', 'Elizabeth']の場合、「Shazia」は位置0、「Matt」は位置1、「Elizabeth」は位置2に割り当てられます。

insert()メソッドを招待リストの例で使うと、次のコードの2行目のように、丸括弧の中に挿入したい位置と、そこに挿入したい名前を指定します。

invite_list = ['Shazia', 'Matt', 'Elizabeth']
invite_list.insert(0, 'Bryce')
print(invite_list)

このコードを実行すると、次のような結果が返されます。

['Bryce', 'Shazia', 'Matt', 'Elizabeth']

このように、リストの先頭(位置0)に「Bryce」を挿入することができました。

まとめ

Pythonのextend()メソッドは、リストの末尾に要素を追加するために使われます。メソッドを呼び出す際に、丸括弧の中に新しいリスト項目を直接記述するか、新しいリスト項目を含む変数を宣言して、その変数を丸括弧の中に指定します。

extend()メソッドと似たメソッドとして、一度に1つの要素しか追加できないappend()メソッド、そしてリストの特定の位置に要素を挿入するinsert()メソッドがあります。それぞれの違いを理解して、目的に応じて使い分けることが大切です。

Pythonのextend()メソッドの使い方がわかったら、次回コーディングをする際に、他のPythonリストメソッドと合わせて実際に試してみてください。

  1. HTMLのlist属性とは?datalist要素で入力候補を表示する方法を解説

    HTMLのlist属性とはHTMLでは、<datalist>要素を使用して、あらかじめ定義された選択肢のリストを作成できます。このリストは<input>要素(入力欄)に対して適用され、ユーザーが文字を入力すると、定義済みの選択肢が候補として自動的に表示されます。<input>要素のlist属性は、対応する<datalist>要素のidを参照することで、入力欄と選択肢リストを関連付けます。このlist属性は、HTML5で新たに導入された機能です。list属性の基本的な使い方list属性を使うには、以下の2つのステップを行います。<datali

  2. PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本

    Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした