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

Pythonの連結演算子とは?リストを結合する3つの方法を徹底解説

Pythonにおける連結演算子(+)は、元となる複数のリストを指定した順序どおりにつなげて、まったく新しいリストを生成します。重要なポイントとして、この操作はインプレース(元のリストを直接変更する)操作ではないため、元のリストは変更されずにそのまま残ります。

連結演算子(+)を使った基本的な例

list1 = [1, 2, 3]
list2 = ['a', 'b']
list3 = list1 + list2
print(list3)

実行結果

[1, 2, 3, 'a', 'b']

このように、list1 の要素が先に、続いて list2 の要素が順番に並んだ新しいリスト list3 が作成されます。元の list1list2 自体には一切影響しません。

方法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コードを書くことができます。

  1. Pythonにおける正規表現[\d+]の仕組みをわかりやすく解説

    Pythonのreモジュールを使うと、文字列から特定のパターンに一致する部分を簡単に抽出できます。本記事では、正規表現「[\d+]」が対象の文字列に対してどのように動作するのか、具体的なコード例とともに解説します。 正規表現「[\d+]」の意味 「[\d+]」は文字クラス([ ])を使用したパターンで、次のいずれか1文字にマッチします。 \d … 半角数字1文字(0〜9) + … プラス記号そのもの ここで重要なのは、通常「+」は「直前のパターンの1回以上の繰り返し」を表す量指定子ですが、角括弧の中では単なるリテラル文字として扱われるという点です。したがって「[\d+]」は「数字または『

  2. Pythonにおけるアンダースコア(_)の意味と使い方をわかりやすく解説

    Pythonでは、アンダースコア(_)は特別な役割を持つ記号です。一見ただの文字に見えますが、実際にはインタープリタの動作や命名規則、数値リテラルの表記など、さまざまな場面で重要な働きをします。この記事では、Pythonでアンダースコアが使われる主な5つのケースを、コード例とともにわかりやすく解説します。1. インタープリタで直前の式の値を保持するPythonの対話モード(インタープリタ)では、直前に評価した式の結果が、特別な変数「_」に自動的に格納されます。計算結果をすぐに再利用したいときに非常に便利です。使用例>>> 12 + 10 22 >>> _ 2