搜索引擎中,在建立了正排表后需要对正排表按照wordId进行排序,且该排序要保持稳定的特性。因此想到了在 python 的列表中存储一个类,通过指定类的某个属性来进行排序。具体代码如下:
1.首先定义类,按照需求定义:
class pageObj:
url = ''
docId = 0
def __init__(self,U,Id):
self.url = U
self.docId= Id2.定义类并进行排序:
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实现的稳定排序方法,通过自定义类及其属性进行排序,并保持原始数据的稳定性。示例展示了如何对包含URL和docId的对象列表进行排序。
764

被折叠的 条评论
为什么被折叠?



