列表嵌套字典,根据字典某一key排序
python sort、sorted高级排序技巧(key的使用)
Python要如何实现(列表)排序?
一个有趣的python排序模块:bisect
列表中嵌套字典,按字典的key进行排序
item = {'time': '93000020', 'price': '22600', 'volume': 20000, 'order': '367599'}
result = [{'time': '91500500', 'price': '22500', 'volume': 3200, 'order': '23771'},
{'time': '91500790', 'price': '22500', 'volume': 1000, 'order': '37372'},
{'time': '91501080', 'price': '22600', 'volume': 17400, 'order': '46084'},
{'time': '91502930', 'price': '22600', 'volume': 5000, 'order': '95168'},
{'time': '91614810', 'price': '22600', 'volume': 30000, 'order': '147955'},
{'time': '91621940', 'price': '22700', 'volume': 2900, 'order': '149434'},
{'time': '91657540', 'price': '22700', 'volume': 10000, 'order': '156537'}
]
result.append(item)
# 根据价格升序,时间升序的顺序排列
result.sort(key=lambda x:(x['price'], x['time']))
结果为
[{'time': '91500500', 'price': '22500', 'volume': 3200, 'order': '23771'}, {'time': '91500790', 'price': '22500', 'volume': 1000, 'order': '37372'}, {'time': '91501080', 'price': '22600', 'volume': 17400, 'order': '46084'}, {'time': '91502930', 'price': '22600', 'volume': 5000, 'order': '95168'}, {'time': '91614810', 'price': '22600', 'volume': 30000, 'order': '147955'}, {'time': '93000020', 'price': '22600', 'volume': 20000, 'order': '367599'}, {'time': '91621940', 'price': '22700', 'volume': 2900, 'order': '149434'}, {'time': '91657540', 'price': '22700', 'volume': 10000, 'order': '156537'}]
bisect模块在排序时,列表中的元素是元祖才可以排序,字典不行,所以没有用这个
网友评论