sorted()&operator.itemgetter()

机器学习实战代码清单2-1中的最后3行代码中:

sortedClassCount=sorted(classCount.iteritems(),key=operator.itemgetter(1),reverse=True)
书上的注释是:

classCount.iteritems()将classCount字典分解为元组列表,operator.itemgetter(1)按照第二个元素的次序对元组进行排序,reverse=True是逆序,即按照从大到小的顺序排列

为了更好的理解这行代码,我们来看几个例子:

>>> dict={}
>>> import operator
>>> dict={}
>>> dict['A']=2
>>> dict['B']=1
>>> dict['C']=3
>>> print dict
{'A': 2, 'C': 3, 'B': 1}  #创建了一个字典,名字为dict

>>>Countlabels_max=sorted(dict.iteritems(),key=operator.itemgetter(1),reverse=True)#运行代码
>>> print Countlabels_max
[('C', 3), ('A', 2), ('B', 1)]
>>> Countlabels_max[0][0]#返回第0个tuple的第0个参数,也就是我最终的结果
'C' #目标label
>>> print dict
{'A': 2, 'C': 3, 'B': 1}#sorted函数不改变原来的dict,这也正是它与sort()的区别所在
暂时先用到这些,以后再进行补充 奋斗



评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值