您的位置:首页 > 运维架构

sorted()&operator.itemgetter()

2018-01-18 14:38 393 查看
机器学习实战代码清单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()的区别所在
暂时先用到这些,以后再进行补充
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: