1. ホーム
  2. python

[解決済み] リスト/タプルを指定されたインデックスにある要素でソートするには?

2022-03-21 07:11:15

質問

以下のような、リストのリスト、またはタプルのリストで、いくつかのデータを持っています。

data = [[1,2,3], [4,5,6], [7,8,9]]
data = [(1,2,3), (4,5,6), (7,8,9)]

そして、サブセット内の2番目の要素でソートしたい。つまり、2,5,8でソートする場合 2(1,2,3) , 5(4,5,6) . 一般的にはどのような方法があるのでしょうか?リストにはタプルとリストのどちらを格納すればいいのでしょうか?

どのように解決するのですか?

sorted_by_second = sorted(data, key=lambda tup: tup[1])

または

data.sort(key=lambda tup: tup[1])  # sorts in place

デフォルトのソートモードは昇順です。降順に並べ替えるには、オプション reverse=True :

sorted_by_second = sorted(data, key=lambda tup: tup[1], reverse=True)

または

data.sort(key=lambda tup: tup[1], reverse=True)  # sorts in place