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

Pythonで2つのリストを要素ごとに連結する方法

Pythonは柔軟で強力なデータ操作機能を備えた言語です。本記事では、2つのリストの要素を、それぞれのリスト内での並び順に従って対応付けて結合(連結)する方法を解説します。

zip関数を使う方法

zip関数は、2つのリストを引数として受け取り、対応する位置の要素同士をペアとしてまとめます。for文と組み合わせてこれらのペアを順に取り出し、文字列結合を行った結果を新しいリストに格納しましょう。

サンプルコード

listA = ["Outer-", "Frost-", "Sun-"]
listB = ['Space', 'bite', 'rise']
# 元のリスト
print("Given list A: ", listA)
print("Given list B: ", listB)
# zipを使用
res = [i + j for i, j in zip(listA, listB)]
# 結果
print("The concatenated lists: ", res)

実行結果

Given list A: ['Outer-', 'Frost-', 'Sun-']
Given list B: ['Space', 'bite', 'rise']
The concatenated lists: ['Outer-Space', 'Frost-bite', 'Sun-rise']

リスト内包表記により、「Outer-Space」「Frost-bite」「Sun-rise」というように、2つのリストの対応する要素が1つの文字列として結合されていることが確認できます。

lambdaとmapを使う方法

map関数は、渡された各要素に対して同じ処理を繰り返し適用する仕組みです。ここではlambda式で結合処理を定義し、zipでペア化した2つのリストの各要素を1つずつ連結していきます。なお、Python 3ではタプル引数の自動アンパックが廃止されたため、lambdaではペア全体を受け取り、インデックスで各要素へアクセスする形で記述します。

サンプルコード

listA = ["Outer-", "Frost-", "Sun-"]
listB = ['Space', 'bite', 'rise']
# 元のリスト
print("Given list A: ", listA)
print("Given list B: ", listB)
# mapを使用
res = list(map(lambda pair: pair[0] + pair[1], zip(listA, listB)))
# 結果
print("The concatenated lists: ", res)

実行結果

Given list A: ['Outer-', 'Frost-', 'Sun-']
Given list B: ['Space', 'bite', 'rise']
The concatenated lists: ['Outer-Space', 'Frost-bite', 'Sun-rise']

いずれの方法でも同じ結果が得られます。簡潔さを重視するならリスト内包表記+zip、関数型スタイルを好むならmap+lambdaというように、用途や好みに応じて使い分けるとよいでしょう。

  1. Pythonでリストに別のリストを追加(結合)する方法を徹底解説

    Pythonでは、既存のリストに別のリストを追加・結合する方法がいくつかあります。ここでは代表的な4つの手法を、サンプルコードと実行結果とともにわかりやすく解説します。 +演算子(連結演算子)を使う方法 最もシンプルなのが「+」演算子による連結です。2つのリストをつなげた新しいリストが生成され、元のリストは変更されません。 例 l1 = [1, 2, 3] l2 = [2, 3, 4] l3 = l1 + l2 print(新しいリスト:, l3) 出力 新しいリスト: [1, 2, 3, 2, 3, 4] append()メソッドを使う方法 listオブジェクトのappend()メソッド

  2. Pythonで2つの辞書リストを比較する方法|差分の出力とPandas活用術

    この記事では、Pythonで2つの「辞書のリスト」を比較し、両者の差分を出力する方法を解説します。 ここで紹介する比較方法では、辞書内のキーと値の両方が比較対象になります。 また、Pythonで辞書のリスト同士を比較する場合、要素の並び順は結果に影響しません。キーと値の組み合わせが同じであれば、順序が異なっていても等しいものとして扱われます。 Pythonで辞書のリストを比較する基本方法 if __name__ == __main__: list_1 = [ {id: 123-abc, name: Mike, age: 40}, {name: John