【Python】リストを一の位の数字で並べ替える方法
Pythonでリストの要素を「一の位の数字」に基づいて並べ替えたい場合があります。そのようなときは、1つの引数を受け取る関数を定義し、文字列(str)への変換と負のインデックス(マイナスの添字)を組み合わせることで、簡単に実現できます。
サンプルコード
以下に具体的な実装例を示します。
def unit_sort(element):
return str(element)[-1]
my_list = [716, 134, 343, 24742]
print("The list is :")
print(my_list)
my_list.sort(key=unit_sort)
print("The result is :")
print(my_list)実行結果
The list is : [716, 134, 343, 24742] The result is : [24742, 343, 134, 716]
コードの解説
unit_sortという名前の関数を定義します。この関数はリストの要素を引数として受け取り、str()で文字列に変換したうえで、[-1]によって最後の文字(つまり一の位の数字)を返します。並べ替え対象となるリストを定義し、まず元の状態をコンソールに表示します。
リストの
sortメソッドを呼び出し、key引数に先ほど定義したunit_sort関数を指定します。これにより、各要素は一の位の数字の順序(0〜9)に従って並べ替えられます。最後に、並べ替え後のリストをコンソールに出力して完了です。
ポイント
負のインデックス [-1] は、文字列やリストの末尾の要素を取得する便利な記法です。数値をそのまま比較するのではなく、一度文字列化して末尾の桁を取り出すことで、「一の位でのソート」という特殊な条件を実現しています。なお、元のリストを変更せずに新しいリストとして結果を得たい場合は、sorted(my_list, key=unit_sort) を使う方法もあります。
-
Pythonで文字列のリストをソートする方法【sort()とsorted()の使い方】
このチュートリアルでは、Pythonで文字列のリストをソートする方法を解説します。リストのsort()メソッドと組み込み関数sorted()を使った基本的な並べ替えに加え、文字数や数値など、さまざまな条件に基づいたソートの方法まで詳しく見ていきましょう。 sort()メソッドで昇順にソートする まずは、list.sort()メソッドを使った基本的なソート方法です。sort()メソッドは元のリストを直接書き換える(インプレースでソートする)点が特徴です。それではコードを見てみましょう。 サンプルコード # 文字列のリスト strings = [Python, C, Java, Javascrip
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>