床头笔记之Python编程实用函数(二)

python字典dict排序与sorted函数

sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
  • iterable – 可迭代对象。
  • cmp --比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
实例:
	def reverse_numeric(x, y):
		return y - x
	sorted([5, 2, 4, 1, 3], cmp=reverse_numeric) 
	[5, 4, 3, 2, 1]
温馨提示:

在Python 3中,cmp参数被完全删除(作为简化和统一语言的更大努力的一部分,消除了丰富的比较和__cmp__()魔术方法之间的冲突)。

字典dict排序

a = {‘ni’:1,‘sha’:5,‘shi’:4,‘shi’:2,‘bu’:3}
字典是这个,然后要对字典按照value进行排序

方法一:operator
import operator
sorted(a.items(),key = operator.itemgetter(1))
   //结果是 [('ni',1), ( 'shi',2), ('bu',3),('shi',4),( 'sha',5)]
方法二:key ,lambda
sorted(a.items(),key = lambda x:x[1])
   //结果是 [('ni',1), ( 'shi',2), ('bu',3),('shi',4),( 'sha',5)]
方法三:zip
zip_dict = zip(a.values(),a.keys())
sorted(zip_dict )
//结果是 [(1, 'ni'), (2, 'shi'), (3, 'bu'),(4, 'shi'),(5, 'sha')]
方法四:cmp
def reverse_numeric(x, y):
		return x[1] - y[1]
sorted(a.items(), cmp=reverse_numeric) 

//结果是 [(‘ni’,1), ( ‘shi’,2), (‘bu’,3),(‘shi’,4),( ‘sha’,5)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值