1段ネストされたリスト(二重リスト)を内包されるリストの任意のインデックス(今回は1番目)に基づいてソートする方法のメモです。
>>> l = [['hoge', 3], ['huga', 1], ['piyo', 4], ['foo', 2]] >>> sorted(l, key=lambda x: x[1]) [['huga', 1], ['foo', 2], ['hoge', 3], ['piyo', 4]]
内包されるリストが1番目のインデックスに基づいて昇順にソートされています。
同じような書き方で辞書をvalueに基づいてソートできます。
>>> d = {'hoge':3, 'huga':1, 'piyo': 4, 'foo': 2} >>> sorted(d.items(), key=lambda x: x[1]) [('huga', 1), ('foo', 2), ('hoge', 3), ('piyo', 4)]
lambdaの使い方が独特ですが、戻り値の部分でキーにしたい要素を指定します。
lambdaのありがたみを感じる瞬間ですね。
コメント