当前位置: 代码迷 >> 综合 >> sorted()operator.itemgetter()
  详细解决方案

sorted()operator.itemgetter()

热度:96   发布时间:2023-12-25 00:46:51.0

机器学习实战代码清单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()的区别所在
暂时先用到这些,以后再进行补充



  相关解决方案