Pythonでリストを拡張する5つの方法を徹底解説
リストはPythonで最もよく使われるデータ構造です。既存のリストに新しい要素を追加して「拡張」したい場面は非常に多くありますが、その実現方法は1つだけではありません。本記事では、それぞれ特徴の異なる5つの手法を、実際のコード例と実行結果とともにわかりやすく解説します。
1. +演算子を使う方法
最も直感的なのが+演算子によるリストの連結です。変数に値を代入し直す感覚と同じように、新しいリストの要素を既存のリストに追加できます。
サンプルコード
list = ['Mon','Tue','Wed'] list = list + ['Thu','Fri'] print(list)
実行結果
上記のコードを実行すると、次の出力が得られます。
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
2. スライスを使う方法
スライスを活用すれば、リストの末尾に要素を追加することも可能です。len()関数でリストの長さを取得し、末尾からスライスした位置に対して新しいリストの値を代入します。
サンプルコード
list = ['Mon','Tue','Wed'] list[len(list):] = ['Thu','Fri'] print(list)
実行結果
上記のコードを実行すると、次の出力が得られます。
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
3. append()メソッドを使う方法
append()メソッドは、リストの末尾に要素を1つずつ追加します。文字列などの単一要素だけでなく、別のリストを引数として渡すこともできます。ただしその場合、追加されたリストはネストされた状態(リストの中のリスト)として保持される点に注意が必要です。
サンプルコード
list = ['Mon','Tue','Wed']
list.append('Thu')
list.append('Fri')
list.append(['sat','sun'])
print(list)実行結果
上記のコードを実行すると、次の出力が得られます。
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', ['sat', 'sun']]
4. extend()メソッドを使う方法
extend()もappend()と同様にリストへ要素を追加するメソッドですが、挙動が大きく異なります。extend()に別のリストを渡すと、その要素が個別に展開されて追加されるため、リストの中にリストが入れ子になることはありません。複数のリストをひとつにまとめたい場合に便利です。
サンプルコード
list1 = ['Mon','Tue','Wed'] list2 = ['Thu','Fri','Sat'] list1.extend(list2) print(list1)
実行結果
上記のコードを実行すると、次の出力が得られます。
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
5. itertoolsのchain()を使う方法
標準ライブラリitertoolsが提供するchain()関数を使うと、複数のリストをまとめて連結できます。2つ以上のリストにも対応しており、すべての要素が最終的にひとつのリストに統合されます。
サンプルコード
from itertools import chain list1 = ['Mon','Tue','Wed'] list2 = ['Thu','Fri'] list3 = ['Sat','Sun'] list4 = (list(chain(list1, list2,list3))) print(list4)
実行結果
上記のコードを実行すると、次の出力が得られます。
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
まとめ
リストの拡張には、手軽な+演算子やスライスから、用途に応じて使い分けられるappend()・extend()、さらに複数リストを一括連結できるitertools.chain()まで、さまざまな選択肢があります。ネストの有無や処理対象のリスト数など、目的に合わせて最適な方法を選びましょう。
-
Pythonでリストを空にする(クリアする)4つの方法を徹底解説
Pythonでは、リスト内のすべての要素を削除してリストを空にする方法が複数あります。本記事では、代表的な4つの手法——clear()メソッド、del文、*= 0による代入、そしてリストの再初期化——について、それぞれのコード例と実行結果とともにわかりやすく解説します。 1. clear()メソッドを使う方法 clear()はPythonの標準ライブラリに組み込まれたリスト用メソッドで、呼び出すだけでリストの中身を完全に空にできます。最もシンプルで直感的な方法です。 構文: list_name.clear() # list_name には対象となるリスト名を指定します コード例 以下の例では、
-
Pythonで辞書のリストを値でソートする方法|sorted関数とlambdaの使い方
本記事では、複数の辞書を格納したリストを、各辞書が持つ値(value)に基づいて並べ替える方法を解説します。 サンプルとして使う辞書には、「name(名前)」と「roll(出席番号)」という2つのキーが含まれています。まずはPythonの組み込み関数 sorted() とラムダ式(lambda)を組み合わせて、roll の値で昇順にソートした結果を表示します。 続いて、name と roll の両方を組み合わせた条件でのソート、そして roll の値で降順にソートする方法まで、順番に見ていきましょう。 サンプルコード # 辞書のリストを初期化 my_list1 = [{ name : A