特定キーでソートするってのをワラワラ関数垂れ流したくない
L = [{'key_a':'aaa','key_b':456}, {'key_a':'ccc','key_b':123}, {'key_a':'bbb','key_b':987}, {'key_a':'ddd','key_b':567}, ] def usort(key): """ 関数を返す """ fnc = None def f(a,b): return cmp(a[key],b[key]) return f for x in L:print(x) L.sort(usort('key_a')) for x in L:print(x) L.sort(usort('key_b'),reverse=True) for x in L:print(x)
やっとさいきん、関数を返すということがわかってきた気がする。理解遅い。
これが
{'key_a': 'aaa', 'key_b': 456} {'key_a': 'ccc', 'key_b': 123} {'key_a': 'bbb', 'key_b': 987} {'key_a': 'ddd', 'key_b': 567}
こう
{'key_a': 'aaa', 'key_b': 456} {'key_a': 'bbb', 'key_b': 987} {'key_a': 'ccc', 'key_b': 123} {'key_a': 'ddd', 'key_b': 567}
こう
{'key_a': 'bbb', 'key_b': 987} {'key_a': 'ddd', 'key_b': 567} {'key_a': 'aaa', 'key_b': 456} {'key_a': 'ccc', 'key_b': 123}