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(...)
1 对于字典列表, 即列表元素 是 字典, 需要根据字典key 的值 ,进行排序
2 直接对字典 排序, 对字典的key对应的value 进行排序 ,或者按照key 进行排序
有四个参数,
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