python中的排序

python 中排序 list 对应的sort, 还有内建函数 sorted ,这篇文章主要讲解一下,sorted() 函数的一些简单用法. sorted() 是用来排序的函数,功能还是比较强大的. 这个函数 会返回一个new sorted list. 
有四个参数, 
iterable  可迭代对象,  
key   排序的key
cmp  比较方法
reverse   是否降序

reverse=True
这个函数 会返回一个新的列表.  默认升序, 可以 reverse=True ,改成降序

Help on built-in function sorted in module __builtin__:
sorted(...)

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list


一  对于字典 进行排序

my_dict = {'a': 21, 'b': 5, 'c': 3, 'd': 54, 'e': 74, 'f': 10,'g':10,'h':35}
print(my_dict.iteritems())

1 对于字典列表, 即列表元素 是 字典, 需要根据字典key 的值 ,进行排序 

# 按照 key  进行排序,升序
new_dict = sorted(my_dict.iteritems(), key=lambda d: d[0], reverse=False)
print new_dict

2 直接对字典 排序, 对字典的key对应的value 进行排序 ,或者按照key  进行排序
# 按照value  进行排序,升序
new_dict = sorted(my_dict.iteritems(), key=lambda d: d[1], reverse=False)
print new_dict



二 字典列表 排序
列表元素 是字典, 根据字典中的某个key 进行排序

mylist = [
    {u'max_roam_day_cnt_6m': 47, u'roam_day_cnt_3m': 59, u'continue_roam_cnt_6m': 5, u'max_roam_day_cnt_3m': 25, u'roam_day_cnt_6m': 139},
    {u'max_roam_day_cnt_6m': 4, u'roam_day_cnt_3m': 69, u'continue_roam_cnt_6m': 2, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 8},
    {u'max_roam_day_cnt_6m': 49, u'roam_day_cnt_3m': 45, u'continue_roam_cnt_6m': 2, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 7},
    {u'max_roam_day_cnt_6m': 3, u'roam_day_cnt_3m': 3, u'continue_roam_cnt_6m': 1, u'max_roam_day_cnt_3m': 3, u'roam_day_cnt_6m': 3},
    {u'max_roam_day_cnt_6m': 1, u'roam_day_cnt_3m': 12, u'continue_roam_cnt_6m': 0, u'max_roam_day_cnt_3m': 1, u'roam_day_cnt_6m': 3},
    {u'max_roam_day_cnt_6m': 3, u'roam_day_cnt_3m': 3, u'continue_roam_cnt_6m': 1, u'max_roam_day_cnt_3m': 3, u'roam_day_cnt_6m': 3},
    {u'max_roam_day_cnt_6m': 35, u'roam_day_cnt_3m': 8, u'continue_roam_cnt_6m': 1, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 3},
    {u'max_roam_day_cnt_6m': 25, u'roam_day_cnt_3m': 10, u'continue_roam_cnt_6m': 1, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 2},
    {u'max_roam_day_cnt_6m': 28, u'roam_day_cnt_3m': 0, u'continue_roam_cnt_6m': 1, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 2},
    {u'max_roam_day_cnt_6m': 14, u'roam_day_cnt_3m': 0, u'continue_roam_cnt_6m': 0, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 2},
    {u'max_roam_day_cnt_6m': 18, u'roam_day_cnt_3m': 45, u'continue_roam_cnt_6m': 0, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 1},
    {u'max_roam_day_cnt_6m': 74, u'roam_day_cnt_3m': 67, u'continue_roam_cnt_6m': 0, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 1},
    {u'max_roam_day_cnt_6m': 10, u'roam_day_cnt_3m': 13, u'continue_roam_cnt_6m': 0, u'max_roam_day_cnt_3m': 0, u'roam_day_cnt_6m': 1}
]

new_list = sorted(mylist, key=lambda e: (e.__getitem__('max_roam_day_cnt_6m')),reverse=True)
for item in new_list:
    print item



总结:  本文主要说明了Python的一些排序,对字典根据key ,或者根据value 进行排序. 对字典列表进行排序,根据字典中的关键字key 对应value进行排序. 


分享快乐,留住感动.   Fri Jan 19 07:24:27 CST 2018 ---Frank

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值