\

Pythonでは、sorted()関数とlambda式を組み合わせることで、複数のキーを使ってリストをソートすることができます。以下に具体的な手順を示します。

まず、ソートしたいリストを用意します。ここでは、商品名とその価格、在庫数を要素に持つ2次元リストを考えてみましょう。

data = [['きゅうり',1,4],['いちご',2,6],['にんじん',2,1],['とうふ',1,0]]

このリストを、価格と在庫数をキーにして昇順にソートするには、以下のようにsorted()関数とlambda式を使います。

sorted_data = sorted(data, key=lambda x:(x[1], x[2]))
print(sorted_data)
# Output: [['とうふ',1,0],['きゅうり',1,4],['にんじん',2,1],['いちご',2,6]]

このコードでは、lambdalambda x:(x[1], x[2])が新しいソートキーを生成しています。この式は、リストの各要素(ここでは['きゅうり',1,4]など)を入力として受け取り、その1番目と2番目の要素(ここでは14)をタプルとして返します。sorted()関数は、このタプルを使ってリストの要素を比較し、リストを昇順にソートします。

なお、降順にソートしたい場合は、sorted()関数のreverse引数をTrueに設定します。

sorted_data = sorted(data, key=lambda x:(x[1], x[2]), reverse=True)
print(sorted_data)
# Output: [['いちご',2,6],['にんじん',2,1],['きゅうり',1,4],['とうふ',1,0]]

以上が、Pythonで複数キーを使ってリストをソートする方法です。このテクニックは、データ分析やアルゴリズムの実装など、様々な場面で役立つでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です