美文网首页
列表,字典排序

列表,字典排序

作者: 葡萄柚子茶 | 来源:发表于2020-04-08 16:21 被阅读0次

    列表嵌套字典,根据字典某一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模块在排序时,列表中的元素是元祖才可以排序,字典不行,所以没有用这个

    相关文章

      网友评论

          本文标题:列表,字典排序

          本文链接:https://www.haomeiwen.com/subject/yzitmhtx.html