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制作flappybird游戏的详细步骤

    基于Python制作flappybird游戏的详细步骤

    python中pygame模块能让我们很方便的编写游戏,下面这篇文章主要给大家介绍了关于如何基于Python制作flappybird游戏的详细步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Python操作Excel之xlsx文件

    Python操作Excel之xlsx文件

    前段时间做一个项目,不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取。所以想着记录下来,这篇文章主要给大家介绍了Python操作Excel之xlsx文件的相关资料,需要的朋友可以参考下。
    2017-03-03
  • python使用clear方法清除字典内全部数据实例

    python使用clear方法清除字典内全部数据实例

    这篇文章主要介绍了python使用clear方法清除字典内全部数据,实例分析了Python中clear方法清空字典内数据的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python制作微信好友背景墙教程(附完整代码)

    Python制作微信好友背景墙教程(附完整代码)

    这篇文章主要介绍了Python制作微信好友背景墙教程(附完整代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 简单的Python动态可视化神器,编程小白也能上手

    简单的Python动态可视化神器,编程小白也能上手

    这篇文章就来介绍简单的Python动态可视化神器,最近发现了一个宝藏动态可视化库,非常简单,即使是小白也能轻松上手。这个库就是motionchart,它能够用 pandas 的 dataframe 数据直接创建交互式的动态图表,下面来简单看一下如何使用。

    2021-10-10
  • Python实现聪明的尼姆游戏

    Python实现聪明的尼姆游戏

    尼姆游戏是个著名的游戏,有很多变种玩法,今天通过本文给大家分享Python实现聪明的尼姆游戏代码,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 详解如何理解并正确使用Python中的f字符串

    详解如何理解并正确使用Python中的f字符串

    Python中的f字符串是一种字符串格式化语法,它可以将变量、表达式和函数等动态地嵌入到字符串中,本文就来详细讲讲如何理解并正确使用它吧
    2023-06-06
  • python调用百度AI接口实现人流量统计

    python调用百度AI接口实现人流量统计

    这篇文章主要介绍了python调用百度AI接口实现人流量统计,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python批量提交沙箱问题实例

    python批量提交沙箱问题实例

    这篇文章主要介绍了python批量提交沙箱问题实例,针对批量提交沙箱出现的问题进行了针对性的分析与实例讲解,具有不错的参考借鉴价值,需要的朋友可以参考下
    2014-10-10
  • PyTorch小功能之TensorDataset解读

    PyTorch小功能之TensorDataset解读

    这篇文章主要介绍了PyTorch小功能之TensorDataset解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论