python小例子之4 -- 列表(list)和字典(dict)数据排序

        主题:列表(list)和字典(dict)数据排序
        环境: winxp pro + sp2 + python2.5
        备注: 请注意,凡是在源代码文件中使用了中文字符,请最好保存为utf-8格式
        代码:
python 代码
 
  1. # sort.py  
  2. # 这个类用来演示如何对自定义对象进行排序  
  3. class Sortobj:  
  4.     a = 0  
  5.     b = ''  
  6.     def __init__(self, a, b):  
  7.         self.a = a  
  8.         self.b = b  
  9.     def printab(self):  
  10.         print self.a, self.b  
  11.   
  12. # 演示对字符串列表进行排序  
  13. samplelist_str = ['blue','allen','sophia','keen']  
  14. print samplelist_str  
  15. samplelist_str.sort()  
  16. print samplelist_str  
  17.   
  18. print '\n'  
  19.   
  20. # 演示对整型数进行排序  
  21. samplelist_int = [34,23,2,2333,45]  
  22. print samplelist_int  
  23. samplelist_int.sort()  
  24. print samplelist_int  
  25.   
  26. print '\n'  
  27.   
  28. # 演示对字典数据进行排序  
  29. sampledict_str = {'blue':'[email protected]',  
  30.                   'allen':'[email protected]',  
  31.                   'sophia':'[email protected]',  
  32.                   'ceen':'[email protected]'}  
  33. print sampledict_str  
  34. # 按照key进行排序  
  35. print sorted(sampledict_str.items(), key=lambda d: d[0])  
  36. # 按照value进行排序  
  37. print sorted(sampledict_str.items(), key=lambda d: d[1])  
  38.   
  39. # 构建用于排序的类实例  
  40. obja = Sortobj(343, 'keen')  
  41. objb = Sortobj(56, 'blue')  
  42. objc = Sortobj(2, 'aba')  
  43. objd = Sortobj(89, 'iiii')  
  44.   
  45. print '\n'  
  46.   
  47. samplelist_obj = [obja, objb, objc, objd]  
  48. # 实例对象排序前  
  49. for obj in samplelist_obj:  
  50.     obj.printab()  
  51. print '\n'  
  52. # 按照对象的a属性进行排序  
  53. samplelist_obj.sort(lambda x,y: cmp(x.a, y.a))  
  54. for obj in samplelist_obj:  
  55.     obj.printab()  
  56. print '\n'  
  57. # 按照对象的b属性进行排序  
  58. samplelist_obj.sort(lambda x,y: cmp(x.b, y.b))  
  59. for obj in samplelist_obj:  
  60.     obj.printab()  

        测试:保存为文件,直接执行即可

你可能感兴趣的:(python)