特定キーでソートするってのをワラワラ関数垂れ流したくない
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}
