Python 列表中存储类对象时按照指定属性进行排序——用于正排表的排序
2015-11-05 18:08
671 查看
搜索引擎中,在建立了正排表后需要对正排表按照wordId进行排序,且该排序要保持稳定的特性。因此想到了在 python 的列表中存储一个类,通过指定类的某个属性来进行排序。具体代码如下:
可以看出,该方法保留了源数据的稳定性,("s",3) 仍然在 ("cc",3) 之前
1.首先定义类,按照需求定义:
class pageObj: url = '' docId = 0 def __init__(self,U,Id): self.url = U self.docId= Id
2.定义类并进行排序:
lis = [pageObj('s',3),pageObj('ss',1),pageObj('cc',3),pageObj('sss',2)] cmpfun = operator.attrgetter('docId') #按照docId进行排序 lis.sort(key = cmpfun) for obj in lis: print obj.url,obj.docId #输出如下: ss 1 sss 2 s 3 cc 3
可以看出,该方法保留了源数据的稳定性,("s",3) 仍然在 ("cc",3) 之前
相关文章推荐
- python 学习笔记(07)
- python 的列表遍历删除实现代码
- [转] 用PDB库调试Python程序
- 如何在Django1.8结合Python3.4版本中使用MySql
- 机器学习之python基础(二)
- ubuntu 下安装python,opencv
- spark python例子
- python基础
- 2015/11/5用Python写游戏,pygame入门(5):面向对象的游戏设计
- python3 读取大文件分解成若干小文件
- [python]pygame游戏开发学习(二)
- python 服务器清除日志文件
- python 基础理解...
- Python操作Access数据库
- 机器学习实战笔记(Python实现)-01-机器学习实战
- 举例讲解Python中的死锁、可重入锁和互斥锁
- 用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
- Python
- python3格式化时间
- 【详解】Python统一解密改进版