Python 中 sorted 的用法

sorted 排序方法主要是用在 list 和 dict 中。

sorted 介绍:



其中, iterable 是可迭代类型

           cmp 是用于比较的函数,比较什么由key 决定

           key 是列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项

           reverse  是排序规则,reverse = True 表示降序, reverse= False 表示升序,有默认值

           返回值 是一个经过排序的可迭代类型,与iterable 一样


栗子:

(1)对由tuple 组成的List 排序

         Python 代码

    students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),] 

(2) 用key 函数排序:返回由tuple 组成的 list

        Python 代码

       

sorted(students, key=lambda student : student[2])   # sort by age 

result = [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

(3) 用cmp 函数排序

         Python 代码

sorted(students, cmp=lambda x,y : cmp(x[2], y[2])) # sort by age

result = [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]  


(4)对字典排序, 返回由tuple 组成的List 不再是字典

         Python 代码

d = {'data1':3, 'data2':1, 'data3':2, 'data4':4} 
sorted(d.iteritems(), key=itemgetter(1), reverse=True)  

result = [('data4', 4), ('data1', 3), ('data3', 2), ('data2', 1)]


(5)简单排序栗子:

          Python 代码:

#coding:utf-8


input = [[180, 18, 3], [58, 103, 48, 340], [17, 240], [22, 24, 25, 33, 44], [100]]

def seq_sorted(seq):
    sort_index = sorted(range(len(seq)), key=lambda x: len(seq[x]))
    return sort_index


sort_index = seq_sorted(input)
# print sort_index

out_sentences = [input[i] for i in sort_index]
print out_sentences


执行后可以得到的结果:

/usr/bin/python2.7 /home/yongcai/PycharmProjects/tensorflow/Python/sorted.py
[[100], [17, 240], [180, 18, 3], [58, 103, 48, 340], [22, 24, 25, 33, 44]]





  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值