重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了python实现对象列表根据某个属性排序的方法。分享给大家供大家参考,具体如下:
创新互联专注于江华网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供江华营销型网站建设,江华网站制作、江华网页设计、江华网站官网定制、小程序开发服务,打造江华网络公司原创品牌,更为您提供江华网站排名全网营销落地服务。对于一个已有的python list, 里面的内容是一些对象,这些对象有一些相同的属性值, 在一些特定的情况下,需要自己选择特定的排序,也就是根据某一个具体的属性来排序,在网上找了下资料,一般来说有两种方法,但从根本上来说,还是调用了list.sort
方法来实现。下面是简单的测试代码片段:
#coding:utf-8 class Person: def __init__(self,name,age,salary): self.name = name self.age = age self.salary = salary obj_list = [ Person('juneys',20,30000), Person('sam',20,20000), Person('eddy',22,25000), Person('eagle',25,10000) ] #第一种方法 obj_list.sort(cmp=None, key=lambda x:x.salary, reverse=False) print '***********第一种方法***********************' for obj in obj_list: print obj.name,obj.salary # 第二种方法,更适合于大量数据的情况. try: import operator except ImportError: cmpfun= lambda x: x.count # use a lambda if no operator module else: cmpfun= operator.attrgetter("salary") # use operator since it's faster than lambda obj_list.sort(key=cmpfun, reverse=True) print '***********第二种方法***********************' for obj in obj_list: print obj.name,obj.salary
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。