Pythonの連結演算子とは?リストを結合する3つの方法を徹底解説
Pythonにおける連結演算子(+)は、元となる複数のリストを指定した順序どおりにつなげて、まったく新しいリストを生成します。重要なポイントとして、この操作はインプレース(元のリストを直接変更する)操作ではないため、元のリストは変更されずにそのまま残ります。
連結演算子(+)を使った基本的な例
list1 = [1, 2, 3] list2 = ['a', 'b'] list3 = list1 + list2 print(list3)
実行結果
[1, 2, 3, 'a', 'b']
このように、list1 の要素が先に、続いて list2 の要素が順番に並んだ新しいリスト list3 が作成されます。元の list1 や list2 自体には一切影響しません。
方法2:extend() 関数でインプレースに結合する
リストを2つ結合する方法は他にもあります。元のリスト自体を直接拡張したい(インプレース操作したい)場合は、extend() メソッドを使うのが最もシンプルです。
list1 = [1, 2, 3] list2 = ['a', 'b'] list1.extend(list2) print(list1)
実行結果
[1, 2, 3, 'a', 'b']
extend() を使うと、新しいリストオブジェクトは作成されず、list1 そのものが更新される点に注意してください。メモリ効率を重視する場合や、元の変数を上書きしてよい場合に適しています。
方法3:アンパック演算子(*)を使って結合する
さらに、アンパック演算子 * を利用して、2つのリストから新しいリストを作成することもできます。ただしこの記法はPython 3.5以降でのみ使用可能です。
list1 = [1, 2, 3] list2 = ['a', 'b'] list3 = [*list1, *list2] print(list3)
実行結果
[1, 2, 3, 'a', 'b']
アンパック演算子を使う方法は、3つ以上のリストを一度に結合したり、途中に別の要素を挟み込んだりできる柔軟性があるのが魅力です。たとえば [*list1, 'x', *list2] のように書けば、間に任意の要素を挿入することも簡単に行えます。
まとめ:使い分けのポイント
- 連結演算子(+):元のリストを保持したまま、新しいリストが必要なときに最適
- extend():元のリストを直接更新してよい場合や、大量のデータを扱う際のメモリ節約に有効
- アンパック演算子(*):Python 3.5以降で、複数リストの柔軟な結合や要素の挿入を行いたいときに便利
用途に応じてこれらの方法を使い分けることで、より読みやすく効率的なPythonコードを書くことができます。
-
Pythonにおける正規表現[\d+]の仕組みをわかりやすく解説
Pythonのreモジュールを使うと、文字列から特定のパターンに一致する部分を簡単に抽出できます。本記事では、正規表現「[\d+]」が対象の文字列に対してどのように動作するのか、具体的なコード例とともに解説します。 正規表現「[\d+]」の意味 「[\d+]」は文字クラス([ ])を使用したパターンで、次のいずれか1文字にマッチします。 \d … 半角数字1文字(0〜9) + … プラス記号そのもの ここで重要なのは、通常「+」は「直前のパターンの1回以上の繰り返し」を表す量指定子ですが、角括弧の中では単なるリテラル文字として扱われるという点です。したがって「[\d+]」は「数字または『
-
Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説
Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2