1 # 使用attrgetter函数对对象排序
 3 # attrgetter处理对象,itemgetter处理序列
 4
 5 from operator import attrgetter
 6
 7
 8 class user():
 9     def __init__(self, name, age):
10         self.name = name
11         self.age = age
12
13     def __repr__(self):
14         '''定义该对象需要输出时的字符串格式'''
15         return self.name + ":" + str(self.age)
16
17
18 users = [
19     user("Mike", 28),
20     user("Lily", 25),
21     user("Tom", 27),
22     user("Ben", 23)
23 ]
24
25 print('排序前:')
26 for user in users:
27     print(user)
28
29 print('-' * 20)
30 print('排序后:')
31
32 for u in sorted(users, key=attrgetter("name")):
33     '''根据对象名称排序-key(u)'''
34     print(u)
35
36 for u in sorted(users, key=attrgetter("name", "age")):
37     '''多键值排序'''
38     print(u)

运行结果:

 1 排序前:
 2 Mike:28
 3 Lily:25
 4 Tom:27
 5 Ben:23
 6 --------------------
 7 排序后:
 8 Ben:23
 9 Lily:25
10 Mike:28
11 Tom:27

转载于:https://www.cnblogs.com/gongxr/p/7291722.html

python之attrgetter函数对对象排序相关推荐

  1. Python内置函数sorted()高级排序用法

    可以结合Python内置函数sorted()从入门到精通来看一些稍微基础的排序用法. >>> from operator import itemgetter >>> ...

  2. SICP2——Python中使用函数构建对象

    一.使用对象构建抽象 1.1 数据抽象 现在到了数学抽象中最关键的一步:让我们忘记这些符号所表示对象.-根本不必考虑它们到底代表着什么东西. 上一篇文章主要强调的是对数据的操作以及这些操作之间的组合与 ...

  3. python中lambda函数对时间排序_python – 使用lambda函数排序()

    我的字符串看起来像"co1 / co2","co3 / co4"--"co11 / co12" 将其描述为正则表达式: ^(?P\w\w)( ...

  4. python中order函数_order by排序

    作者 Toby,持牌照消费金融模型经理,发明国家算法专利,国内最大医药数据中心数据挖掘部门负责人!和重庆儿科医院,中科院教授,赛柏蓝保持慢病数据挖掘项目合作!清华大学,百度,腾讯,网易,爱奇艺等平台签 ...

  5. Python内置函数sorted()和列表方法sort()排序规则不得不说的事

    Python内置函数sorted()和列表方法sort()可以使用key参数指定排序规则,并且都是稳定排序,也就是说,对于指定规则不能涵盖的元素,本来谁在前面,排好以后谁还是在前面. 直接用代码说话: ...

  6. Python内置函数max()高级用法

    不管是排序还是选取最大值或者最小值,都应该有个规则或者顺序,而平时我们所说的最大值或最小值实际上也是在某种排序规则或顺序下的最大值和最小值.Python内置函数max().min()和sorted() ...

  7. python反序数函数_python反序函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 是一个对象并且返回反序排序的列表功能(9)enumerate() 返回的是一个对 ...

  8. python3调用函数len结果不返回字符串长度_Python通过len函数返回对象长度

    英文文档: len(s) Return the length (the number of items) of an object. The argument may be a sequence (s ...

  9. Python基础第六天——函数的使用、函数的参数、函数的返回值、函数的嵌套、命名空间、作用域、函数对象...

    一.拾遗 1.通常情况下无参函数只是进行操作,所以不需要返回值:有参数函数则需要返回值. 2.练习: 判断用户输入一串字符,如果这串字符的长度小于5则重新输入,如果大于5则退出循环. while Tr ...

最新文章

  1. windows10+Python3-如何安装numpy和matplotlib包
  2. 解决Missing artifact com.sun:tools:jar:1.5.0方法
  3. 优化数据库的注意事项
  4. 你能体会那种写 Python 时不用 import 的幸福吗?
  5. 论OD最原始的用途------找程序BUG
  6. sharepoint ECMAScript对象模型系列
  7. 正在这紧要关头的jdzyzwc
  8. wcf 返回图片_WCF图片上传
  9. Android查看wakeLock调用情况
  10. 网易云课堂Java模拟面试笔记(31-40)
  11. Stopwatch示例
  12. 并发编程的挑战——sychronized锁
  13. pdf编辑器怎么使用
  14. 问题1:编译内核出现错误‘debian/stamp/build/kernel‘及解决方案
  15. SDOI2015 寻宝游戏
  16. python dataframe重新索引_Concat DataFrame重新索引仅对唯一值索引对象有效
  17. 活动选择与小船过河问题(贪心算法)
  18. WAF绕过-漏洞发现之代理池指纹被动探针
  19. LINGO编程(基础)
  20. 苹果手机fiddler代理后无法联网的问题

热门文章

  1. 2015.09.05 C++中类的static与const成员
  2. checkbox 在火狐的不支持
  3. 三款Scrum项目管理工具
  4. [转自李战博客]悟透JavaScript
  5. CC++中的时间函数和时间类
  6. Win10系统Win键无法使用
  7. 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法...
  8. 设计模式07----代理模式
  9. java 自定义异常的回顾
  10. sqlserver中创建包含事务的存储过程