# 使用attrgetter函数对对象排序
# attrgetter处理对象,itemgetter处理序列 from operator import attrgetter class user():
def __init__(self, name, age):
self.name = name
self.age = age def __repr__(self):
'''定义该对象需要输出时的字符串格式'''
return self.name + ":" + str(self.age) users = [
user("Mike", 28),
user("Lily", 25),
user("Tom", 27),
user("Ben", 23)
] print('排序前:')
for user in users:
print(user) print('-' * 20)
print('排序后:') for u in sorted(users, key=attrgetter("name")):
'''根据对象名称排序-key(u)'''
print(u) for u in sorted(users, key=attrgetter("name", "age")):
'''多键值排序'''
print(u)

运行结果:

 排序前:
Mike:28
Lily:25
Tom:27
Ben:23
--------------------
排序后:
Ben:23
Lily:25
Mike:28
Tom:27

python之attrgetter函数对对象排序的更多相关文章

  1. Js 数组对象排序

    1.定义函数 /** * 数组对象排序函数 * @param {any} name 排序字段 * @param {any} order 升.降(这里事true.false记得处理下) */ var b ...

  2. Python: attrgetter()函数: 排序不支持原生比较的对象

    问题: 想排序类型相同的对象,但是他们不支持原生的比较操作. answer: 内置的sorted()函数有一个关键字参数key,可传入一个callable对象给它 这个callabel对象对每个传入的 ...

  3. operator.attrgetter() 进行对象排序

    ## 使用operator.attrgetter() 进行对象排序 from operator import attrgetter class Student: def __init__(self, ...

  4. Python的lambda函数与排序

    Python的lambda函数与排序 2010-03-02 15:02 2809人阅读 评论(0) 收藏 举报 lambdapythonlistlispclass工作   目录(?)[+]   前几天 ...

  5. 《流畅的Python》第三部分 把函数视作对象 【一等函数】【使用一等函数实现设计模式】【函数装饰器和闭包】

    第三部分 第5章 一等函数 一等对象 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 在Python中,所有函数都是一等对象 函数是对象 函数本身是 func ...

  6. list排序成员函数对string对象与char*对象排序的差别

    对list容器中的对象排序,不能使用sort()算法,只能采用其自身的排序函数sort().因为,算法sort()只支持随机存取的容器的排序,如vector等. 对基本数据对象list排序:成员函数s ...

  7. Python闭包与函数对象

    1. Python闭包是什么 在python中有函数闭包的概念,这个概念是什么意思呢,查看Wikipedia的说明如下: “ In programming languages, closures (a ...

  8. python中的函数对象与闭包函数

    函数对象 在python中,一切皆对象,函数也是对象 在python语言中,声明或定义一个函数时,使用语句: def func_name(arg1,arg2,...): func_suite 当执行流 ...

  9. Python 进阶 之 函数对象

    Python的世界里,万物皆对象,函数当然也是: 首先要定义一个函数: def add(a,b): print a+b 其次定义一个字典来引用该函数: dic = {"add":a ...

随机推荐

  1. MTALAB——神经网络mae()、mse()、sse()

    mae():平均绝对误差 mse:均方误差 sse:误差平方和

  2. MongoDB可视化工具--Robo 3T 使用教程

    MongoDB可视化工具--Robo 3T 使用教程 1. 到官网下载Robo 3T,网址如: https://robomongo.org/download. 2. 下载安装成功后,打开后点击左上角的 ...

  3. Euler:欧拉函数&素数筛

    一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式:   其中p1, p2……pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...

  4. hibernate4使用原生jdbc进行批处理

    在hibernate中,有一级缓存session和二级缓存sessionFactory这些机制,一方面为编码提供了便利,同时也会有一些副作用.比如有较大的数据量交互的话,缓存反而会降低效率.最近在做一 ...

  5. fastcgi_next_upstream error timeout invalid_header http_500 http_503(转)

    location / proxy_pass http://nodelist; fastcgi_next_upstream error timeout invalid_header http_500 h ...

  6. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  7. ajax返回json时,js获取类型,是字符串类型

    ajax向php服务端请求,并返回json串给前端. js发现得到的返回值的类型是字符串,不能直接取json对象属性,需要JSON.parse(). 怎么解决呢? 这需要在php返回json时,加上一 ...

  8. 快速排序的php实现

    再来一个非常高级的排序算法,快速排序...这个算法是很高效的. 快速排序的思路是,找到一个分割点(中枢点 默认是列表第一个值),把原列表分隔成两部分,在分割点左侧的是都比它小的,在它右侧的是都比它大的 ...

  9. CSS-Photoshop投影与CSS中box-shadow的转换

    box-shadow是给元素块添加周边阴影效果基本语法是: {box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscolor} ...

  10. NoSql的三大基石:CAP理论&BASE&最终一致性

    关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11, ...