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リストメソッドと合わせて実際に試してみてください。
-
HTMLのlist属性とは?datalist要素で入力候補を表示する方法を解説
HTMLのlist属性とはHTMLでは、<datalist>要素を使用して、あらかじめ定義された選択肢のリストを作成できます。このリストは<input>要素(入力欄)に対して適用され、ユーザーが文字を入力すると、定義済みの選択肢が候補として自動的に表示されます。<input>要素のlist属性は、対応する<datalist>要素のidを参照することで、入力欄と選択肢リストを関連付けます。このlist属性は、HTML5で新たに導入された機能です。list属性の基本的な使い方list属性を使うには、以下の2つのステップを行います。<datali
-
PythonのTkinterでスレッドを使う方法|threadingモジュールによる非同期処理の基本
Tkinterでは、スレッド(Threading)を活用することで、複数の関数を同時に実行できます。これにより、アプリケーション内の処理を非同期で動かすことが可能になります。 Pythonでスレッドを使用するには、まずthreadingモジュールをインポートし、そのThreadクラスを継承した新しいクラスを定義します。そして、クラス内でrunメソッドをオーバーライドし、実行したい処理をその中に記述します。 つまり、スレッドを使えば複数の作業を並行して進めることができます。Tkinterアプリケーションでスレッドを実現する際は、Thread()関数を利用します。 ここでは、「一定時間スリープした