Python轻松入门-37 自定义对象排序

视频教程下载链接:http://pan.baidu.com/s/1c1YHrdI

配套教程下载:http://pan.baidu.com/s/1qYdI6q4

这节课,我们来讲解自定义对象排序,假如现在你正在开发一个社交网络应用,有很多用户在使用,他们都有姓,名,生日,用户ID,最喜欢的颜色,等等各种属性,现在要你编写一个算法,通过对象的各个属性来对这个自定义对象进行排列,比如说,对用户ID排序,那么应该怎么实现呢?在这里,还是需要从operator模块中引入attrgetter类,

 
 
from operator import attrgetter
接着我们来模拟创建一个用户类,然后定义它的init函数,这里有2个属性,用户名和用户id:
class User: def __init__(self, name, id): self.name = name self.id = id
然后,我们再定义一个repr函数,这个函数的功能是当需要显示一个对象在屏幕上时,将这个对象的属性或者是方法整理成一个可以打印输出的格式。这里我们定义一个这样的输出格式,把用户名和id通过冒号连接起来:
    def __repr__(self): return self.name + ":" + str(self.id)
大家可能对这个函数没有直观的了解,所以,我们创建一个用户的列表,然后通过循环将所有的User对象打印出来:
users = [ User('huang', 43), User('Bang', 5), User('www', 6), User('oxox', 8), User('work', 23), ] for u in users: print(u)
运行: 图 6‑16 你看,它会按照repr函数定义的格式将每个User对象打印出来。 但是,打印出来的顺序是按照我们定义的顺序打印的,这里我想对这个对象列表按照指定的方式排序,所以就来到本节课的主题了:对自定义对象进行排序,假如现在我们来对列表对象的name属性排序:
for user in sorted(users, key=attrgetter("name")): print(user)
你看,成功的对name属性进行了排序: 图 6‑17 再来对id排序试试:
for user in sorted(users, key=attrgetter("id")): print(user)
运行: 图 6‑18 你看,成功的对id进行了排序。 更多精彩内容尽在视频中! 本文固定链接:http://www.oxox.work/web/python/object-sort/ | 虚幻大学

查看原文:http://www.oxox.work/web/python/object-sort/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚坏叔叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值