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

Pythonで2つの未ソートリストをマージしてソート済みリストを作成する方法

このチュートリアルでは、2つのリストをマージし、その結果をソートされた順序で出力するPythonプログラムの作り方を解説します。数値のリストだけでなく、文字列のリストにも対応できる汎用的な方法なので、ぜひ最後までご覧ください。

実現したいこと

まず、具体的な入力と出力の例を見てみましょう。

例1:数値のリストの場合

入力:
list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]

出力:
[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]

例2:文字列のリストの場合

入力:
list_1 = ["hafeez", "aslan"]
list_2 = ["abc", "kareem", "b"]

出力:
["abc", "aslan", "b", "hafeez", "kareem"]

このように、元のリストがソートされていなくても、マージ後のリストを昇順に並べ替えて出力するのが目標です。

アルゴリズム

処理の流れは非常にシンプルで、以下の4ステップで構成されます。

1. 2つのリストを初期化する。
2. + 演算子を使って2つのリストを連結し、新しい変数に格納する。
3. リストの sort() メソッドを使って、結果のリストをソートする。
4. ソート済みのリストを出力する。

コード例1:数値リストのマージとソート

それでは、実際のコードを見てみましょう。

## リストの初期化
list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]

## 2つのリストを連結
new_list = list_1 + list_2

## sort() メソッドで新しいリストをソート
new_list.sort()

## ソート済みのリストを出力
print(new_list)

実行結果

上記のプログラムを実行すると、次の出力が得られます。

[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]

コード例2:文字列リストのマージとソート

同じプログラムを、今度は文字列のリストで実行してみます。sort() メソッドは文字列に対しても辞書順(アルファベット順)にソートしてくれるため、コードを変更する必要はありません。

## リストの初期化
list_1 = ["hafeez", "aslan"]
list_2 = ["abc", "kareem", "b"]

## 2つのリストを連結
new_list = list_1 + list_2

## sort() メソッドで新しいリストをソート
new_list.sort()

## ソート済みのリストを出力
print(new_list)

実行結果

['abc', 'aslan', 'b', 'hafeez', 'kareem']

補足:sorted() 関数を使う方法

なお、元のリストを変更せずにソートしたい場合は、組み込み関数 sorted() を使う方法もあります。

list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]

## 連結とソートを1行で行う
new_list = sorted(list_1 + list_2)

print(new_list) # [-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]

sorted() は新しいリストを返すため、list_1 や list_2 の中身はそのまま保持されます。用途に応じて sort() と sorted() を使い分けるとよいでしょう。

まとめ

このチュートリアルでは、+ 演算子によるリストの連結と sort() メソッド(または sorted() 関数)を組み合わせることで、2つの未ソートリストからソート済みのマージリストを簡単に作成できることを学びました。数値でも文字列でも同じアプローチが使えるので、さまざまな場面で活用できます。チュートリアルについて不明な点があれば、コメント欄でお気軽に質問してください。

  1. Pythonで3Dリスト(3次元配列)を作成する方法【サンプルコード付き】

    3Dリストとは、いわゆる3次元配列のことです。本記事では、Pythonで3Dリストを作成し、その内容を整形して出力するプログラムを解説します。ここでは例として、文字列「*」を初期値とする3×2×2の3次元リストを生成しますが、仕組みを理解すれば整数など任意の要素を持つ配列にも簡単に応用できます。 3Dリストのイメージ 3次元リストは、リストの中にリスト、さらにその中にリストが入った多段構造のデータです。たとえば、3×3×2の3Dリストは次のように表現できます。 [[1,1,1],[2,2,2],[3,3,3]], [[4,4,4],[5,5,5],[6,6,6]] アルゴリズム ステップ1:

  2. 【Python】2つのリスト間の欠落している値と追加されている値を見つける方法

    集合論において、ある集合Aの「補集合」とは、Aに含まれない要素を指します。また、集合Bに対するAの「相対補集合」は、集合AとBの「差(difference)」とも呼ばれます。本記事では、この原理を応用し、Pythonで2つのリストを比較することで、互いに欠落している要素と余分な要素を効率よく見つける方法を解説します。Pythonのset型には差分を求めるためのdifference()メソッドが標準で用意されており、これを使うと非常にシンプルに実装できます。 アルゴリズム ユーザー入力から2つのリストAとBを作成します。 AとBをそれぞれセット(set型)に変換します。 1つ目のリストに欠落し