项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

很多时候,我们是需要针对对象序列进行排序的,尤其是针对对象的某个属性排序的场景最为常见。以下就实验两种方法来满足这个需求。

1.直接调用序列的sort方法

class Person(object):def __init__(self,age,name):self.age = ageself.name = namedef personSort():persons = [Person(age,name) for (age,name) in [(12,"lili"),(18,"lulu"),(16,"kaka"),(12,"xixi")]]persons.sort(cmp=None,key=lambda x:x.age,reverse=False)for element in persons:print element.age,":",element.name

person对象里两个字段,一个age,一个name。排序的时候按照age来进行。

2.第二种方式

def operatorSort():persons = [Person(age,name) for (age,name) in [(12,"lili"),(18,"lulu"),(16,"kaka"),(12,"xixi")]]try:import operatorexcept ImportError:cmpfun = lambda x:x.ageelse:cmpfun = operator.attrgetter("age","name")persons.sort(key = cmpfun, reverse=False)for element in persons:print element.age,":",element.name

使用operator模块的attrgetter方法,可以达到同时对几个字段排序的目的。本例中就是先对age字段排序,如果age相等再按name排序。

python中对象排序的两种方式相关推荐

  1. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  2. django + python上传文件的两种方式

    突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...

  3. Python实现图片裁剪的两种方式——Pillow和OpenCV

    在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV.两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧. 首先,我们有 ...

  4. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  5. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  6. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  7. 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    实验4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 姓名:李冬辉 学号:20133201 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http ...

  8. python中调用API的几种方式

    python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...

  9. sh执行文件 参数传递_详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...

  10. python中的or的两种用法

    python中的or的两种用法 python中or除了常见的和and作为判断的条件外,还有一种不多见但很实用的用法,那就是: a = b or c 在这条赋值语句中的 or 的含义是判断 b 和 c ...

最新文章

  1. AI工程师面试屡被拒:比贫穷脱发更恐怖的是,2020年你仍不会……
  2. truncate数据后回收空间_Truncate用法详解
  3. 11.17-20 | KubeCon 北美 2020 阿里巴巴完整议题
  4. Java网页小程序——Java Applet
  5. BZOJ 4610: [Wf2016]Ceiling Functi 水题
  6. 安卓第三阶段实训项目:基于网络乐库音乐播放器V1.0
  7. IOS 内存优化和调试技巧
  8. js基础 之 引用类型
  9. linux命令安装中英文插件,linux – 如何使用命令行自动安装Eclipse插件?
  10. Centos如何安装163yum源
  11. MyBatis映射表问题
  12. 问卷调查报告html模版,问卷调查报告的格式
  13. 有没有好用的文字转语音的工具帮推荐?
  14. hive之内表和外表
  15. BZOJ_4698_Sdoi2008 Sandy的卡片_后缀数组+单调队列+双指针
  16. 2019年奥斯卡获奖电影绿皮书经典台词(中英文对照)
  17. Linux安装Discuz论坛(centos 7)
  18. 最全的项目部署+持续集成解决方案:Jenkins + git + docker
  19. 晶振、时钟周期、机器周期
  20. 上海世博会展示未来6大生活趋势

热门文章

  1. Mongodb JAVA API
  2. phpmyadmin误删表后如何恢复
  3. TextMate里添加Theme
  4. 为什么300的并发能把支持最大连接数4000数据库压死
  5. springMVC整合mybatis 项目遇到问题总结
  6. [译] 为什么需要在 React 类组件中为事件处理程序绑定 this
  7. Codewar python训练题全记录——持续更新
  8. Spring配置bean文件的底层实现方式
  9. python把文件中的邮箱分类 保存到相应的文件里面
  10. shell之脚本片断