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

【Python】2つのリストを結合してソートする方法をわかりやすく解説

リスト(List)は、Pythonで最も頻繁に使用されるデータ構造のひとつです。本記事では、2つのリストの要素を組み合わせて、ソート済みの状態で最終結果を出力する方法を、具体的なサンプルコードとともに解説します。

方法1:「+」演算子とsorted()を組み合わせる

「+」演算子を使うと、2つのリストの要素を1つの新しいリストに連結できます。その後、sorted()関数を適用することで、結合されたリストの要素を昇順に並べ替えられます。この方法はシンプルで直感的なので、小規模なデータを扱う際に特に便利です。

サンプルコード

listA = ['Mon', 'Tue', 'Fri']
listB = ['Thu','Fri','Sat']
# 元のリスト
print("Given list A is : ",listA)
print("Given list B is : ",listB)
# 結合してソート
res = sorted(listA + listB)
# 結果
print("The combined sorted list is : \n" ,res)

実行結果

上記のコードを実行すると、以下の出力が得られます。

Given list A is : ['Mon', 'Tue', 'Fri']
Given list B is : ['Thu', 'Fri', 'Sat']
The combined sorted list is :
['Fri', 'Fri', 'Mon', 'Sat', 'Thu', 'Tue']

方法2:heapqモジュールのmerge()を使う

標準ライブラリのheapqモジュールが提供するmerge()関数も、2つのリストの要素を結合できます。merge()はイテレータを返すため、list()でリストに変換した後、sorted()関数を適用して最終的な出力を取得します。merge()は元のリストがすでにソートされている場合に高いパフォーマンスを発揮する点が特徴です。

サンプルコード

from heapq import merge
listA = ['Mon', 'Tue', 'Fri']
listB = ['Thu','Fri','Sat']
# 元のリスト
print("Given list A is : ",listA)
print("Given list B is : ",listB)
# マージ
res = list(merge(listA,listB))
# 結果
print("The combined sorted list is : \n" ,sorted(res))

実行結果

上記のコードを実行すると、以下の出力が得られます。

Given list A is : ['Mon', 'Tue', 'Fri']
Given list B is : ['Thu', 'Fri', 'Sat']
The combined sorted list is :
['Fri', 'Fri', 'Mon', 'Sat', 'Thu', 'Tue']

まとめ

2つのリストを結合してソートするには、「+」演算子とsorted()を組み合わせる方法が最もシンプルで汎用的です。一方、heapq.merge()は、すでにソート済みのリストを効率的にマージしたい場合に適しています。データの規模や特性に応じて、最適な方法を選択しましょう。

  1. Pythonで2つのリストの共通要素を求めるプログラム(積集合の計算方法)

    リストの共通部分(Intersection/積集合)とは、2つのリストに共通して含まれるすべての要素を取り出し、それらを別の3つ目のリストに格納する操作のことです。 List1::[1,2,3] List2::[2,3,6] List3::[2,3] 上記の例では、List1とList2の両方に存在する「2」と「3」が抽出され、List3に格納されています。 アルゴリズム ステップ1:リストを入力する。 ステップ2:まず1つ目のリストの全要素を走査し、2つ目のリストの各要素と照合する。 ステップ3:要素が一致した場合、その値を3つ目のリストに格納する。 サンプルコード # 2つのリス

  2. Pythonリスト入門:作成から操作、削除まで徹底解説

    このチュートリアルでは、Pythonのリスト(List)について学びます。リストの作成方法、要素へのアクセス、要素の追加・削除、リスト自体の削除など、基本的な操作を一つずつ丁寧に解説していきます。 Pythonでは、リストは角括弧 [] を使って構築し、各要素はカンマ , で区切って記述します。 Pythonのリストは、異なる型のオブジェクトを混在させて格納できるのが特徴です。すべて文字列である必要も、整数である必要もありません。例えば、以下のように複数の型が混ざったリストを作成できます。mixedTypesList = [a, True, 1, 1.0] リストの作成方法 リストは、角括弧