demo= [{'age': 90, 'id': '12#2'},
{'age': 12, 'id': '12#3'},
{'age': 67, 'id': '12#1'},
{'age': 56, 'id': '12#2'},
{'age': 34, 'id': '12#2'}]
a = sorted(demo, key=lambda x: x['id'])
for el in a:
print el
与える
{'age': 67, 'id': '12#1'}
{'age': 90, 'id': '12#2'}
{'age': 56, 'id': '12#2'}
{'age': 34, 'id': '12#2'}
{'age': 12, 'id': '12#3'}
IDでソートされています。
複数の属性による並べ替え
demo= [{'age': 90, 'id': '12#2'},
{'age': 12, 'id': '12#3'},
{'age': 67, 'id': '12#1'},
{'age': 56, 'id': '12#2'},
{'age': 34, 'id': '12#2'}]
a = sorted(demo, key=lambda x: (x['id'], x['age']))
for el in a:
print el
与える
{'age': 67, 'id': '12#1'}
{'age': 34, 'id': '12#2'}
{'age': 56, 'id': '12#2'}
{'age': 90, 'id': '12#2'}
{'age': 12, 'id': '12#3'}
これは最初に ID でソートされ、次に年齢 (昇順) でソートされます。
別の方法として、ASC を ID で、DESC を年齢で並べ替えたい場合は、次のようにすることができます。
demo= [{'age': 90, 'id': '12#2'},
{'age': 12, 'id': '12#3'},
{'age': 67, 'id': '12#1'},
{'age': 56, 'id': '12#2'},
{'age': 34, 'id': '12#2'}]
a = sorted(demo, key=lambda x: (x['id'], -x['age']))
for el in a:
print el
を与える
{'age': 67, 'id': '12#1'}
{'age': 90, 'id': '12#2'}
{'age': 56, 'id': '12#2'}
{'age': 34, 'id': '12#2'}
{'age': 12, 'id': '12#3'}