您的位置:首页 > 编程语言 > Python开发

Python 列表中存储类对象时按照指定属性进行排序——用于正排表的排序

2015-11-05 18:08 671 查看
搜索引擎中,在建立了正排表后需要对正排表按照wordId进行排序,且该排序要保持稳定的特性。因此想到了在 python 的列表中存储一个类,通过指定类的某个属性来进行排序。具体代码如下:

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) 之前
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: