Python 使用多属性来进行排序

 更新时间:2019年09月01日 09:43:10   作者:温欣爸比  
这篇文章主要介绍了Python 使用多属性来进行排序的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

Python 中 list.sort() 是列表中非常常用的排序函数, key 参数可以对单个属性进行排序。

但是想要实现类似 sql 中 order by id, age 一样,对多个字段进行排序就不支持了。

py2 中 sort() 函数还有个 cmp 参数可以传入一个方法,可以自定义对多个属性进行排序,py3 中移除了这个字段。

py3 想要实现这个功能,需要使用 functools 模块中的方法,实例如下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: wxnacy(wxnacy@gmail.com)

from functools import cmp_to_key

def cmp_func(a, b):

  if a['id'] < b['id']:
    return -1
  elif a['id'] > b['id']:
    return 1

  if a['name'] < b['name']:
    return -1
  elif a['name'] > b['name']:
    return 1

  return 0

arr.sort(key=cmp_to_key(cmp_func))

上面的例子我们实现了 id 正序排序,如果 id 相同,则按照 age 正序排序

为了方便可以封装成一个方法,以供列表调用,封装的方法 demo 可以参见地址

https://github.com/wxnacy/study/blob/master/python/office_module/list_demo/sort_by_multi_fields.py

总结

以上所述是小编给大家介绍的Python 使用多属性来进行排序,希望对大家有所帮助,如果大家有任何疑问欢迎给大家留言,小编会及时回复大家的!

相关文章

  • Python龙贝格法求积分实例

    Python龙贝格法求积分实例

    今天小编就为大家分享一篇Python龙贝格法求积分实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python添加菜单图文讲解

    python添加菜单图文讲解

    在本篇文章中小编给大家整理的是关于python添加菜单图文讲解以及步骤分析,需要的朋友们学习下吧。
    2019-06-06
  • pyecharts如何实现显示数据为百分比的柱状图

    pyecharts如何实现显示数据为百分比的柱状图

    这篇文章主要介绍了pyecharts如何实现显示数据为百分比的柱状图,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python清除字符串中间空格的实例讲解

    python清除字符串中间空格的实例讲解

    今天小编就为大家分享一篇python清除字符串中间空格的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python包管理工具pip用法详解

    Python包管理工具pip用法详解

    本文详细讲解了Python包管理工具pip的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Python中的 Numpy 数组形状改变及索引切片

    Python中的 Numpy 数组形状改变及索引切片

    这篇文章主要介绍了Python中的 Numpy 数组形状改变及索引切片,Numpy提供了一个reshape()方法,它可以改变数组的形状,返回一个新的数组,更多相关内容需要的小伙伴可以参考下面文章
    2022-05-05
  • 打包发布Python模块的方法详解

    打包发布Python模块的方法详解

    这篇文章我们来学习打包与发布你的Python模块的基础知识以及方法,非常的简单实用。所以不要浪费时间了,咱们开始吧!
    2016-09-09
  • python实现二维数组的对角线遍历

    python实现二维数组的对角线遍历

    这篇文章主要为大家详细介绍了python实现二维数组的对角线遍历,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python各类图像库的图片读写方式总结(推荐)

    Python各类图像库的图片读写方式总结(推荐)

    这篇文章主要介绍了Python各类图像库的图片读写方式总结(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python实现RLE格式与PNG格式互转

    Python实现RLE格式与PNG格式互转

    在机器视觉领域的深度学习中,很多数据集的标注文件使用RLE的格式。但是神经网络的输入一定是一张图片,为此必须把RLE格式的文件转变为图像格式。本文将利用Python实现RLE格式与PNG格式互转,感兴趣的可以了解一下
    2022-08-08

最新评论