ホームページ >バックエンド開発 >Python チュートリアル >Python でソートされたリストを結合する最も効率的な方法は何ですか?
複数のソートされたリストを 1 つの順序付きリストに結合することは、Python プログラミングの一般的なタスクです。これを実現するには、通常、組み込みの sort() 関数の使用を検討します。ただし、マージ アルゴリズムとして知られる、より効率的なアプローチが存在します。
マージ アルゴリズムは、入力リストを再帰的に小さなサブセットに分割し、それらを並べ替えてから、結果。このアプローチの計算量は O(n log n) です。ここで、n は結合されたリスト内の要素の総数です。
Python でのマージ アルゴリズムの実装には、次の手順が含まれます。
<code class="python">def merge(list1, list2): """Merge two sorted lists into a single sorted list.""" result = [] while list1 and list2: if list1[0] < list2[0]: result.append(list1[0]) del list1[0] else: result.append(list2[0]) del list2[0] result.extend(list1) result.extend(list2) return result</code>
Python でソートされたリストを結合するためのもう 1 つの効率的なソリューションは、heapq モジュールの merge 関数を使用することです。この関数は、ソートされたイテラブルをマージするために特別に設計されており、時間計算量は O(n) です。ここで、n は要素の総数です。
次のコードは、heapq.merge() 関数の使用方法を示しています。
<code class="python">import heapq list1 = [1, 5, 8, 10, 50] list2 = [3, 4, 29, 41, 45, 49] result = list(heapq.merge(list1, list2)) print(result) # Output: [1, 3, 4, 5, 8, 10, 29, 41, 45, 49, 50]</code>
マージ アルゴリズムを実装する場合でも、heapq.merge() 関数を利用する場合でも、Python は最小限の計算複雑さでソートされたリストを結合するための効率的なソリューションを提供します。
以上がPython でソートされたリストを結合する最も効率的な方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。