python itemgetter函数_[问题解决] sorted函数以及operator.itemgetter函数
在KNN算法中有对距离进行排序,这里用到
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
其中classCount是字典,其包括了标签与计数,即classcount={ 'a': 5, 'b': 3, 'c': 6 }
operator.itemgetter()函数
operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。
a = [1, 2, 3]
>>> b=operator.itemgetter(1) # 定义函数b,获取对象的第1个域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) # 定义函数b,获取对象的第1个域和第0个的值
>>> b(a)
(2, 1)
注意: operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
sorted(iterable[, cmp[, key[, reverse]]])函数
Python内置的排序函数sorted可以对list或者iterator进行排序。
参数解释:
(1)iterable指定要排序的list或者iterable;
(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数;如:
students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda student : student[2])
(3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明;
(4)reverse参数就不用多说了,是一个bool变量,表示升序还是降序排列,默认为false(升序排列),定义为True时将按降序排列。
整理
有了上面的operator.itemgetter函数,也可以用该函数来实现,例如要通过student的第三个域排序,可以这么写:
sorted(students, key=operator.itemgetter(2))
sorted函数也可以进行多级排序,例如要即先根据第二个域排序,再根据第三个域排序。
可以这么写:
sorted(students, key=operator.itemgetter(1,2))
items()和iteritems()
items()返回的是列表对象,而iteritems()返回的是iterator对象。例如:
print dic.items() #[('a', 'hello'), ('c', 'you'), ('b', 'how')]
print dic.iteritems() #
iteriitems和items在sorted函数里面的应用区别:
iteritems()返回的是一个能遍历所有键值对的生成器。
items()返回的是整个列表中的键值对的拷贝,在你的dict比较大的情况下会消耗大量内存。
结果一致。
python itemgetter函数_[问题解决] sorted函数以及operator.itemgetter函数相关推荐
- python封装c++_用pybind11封装C++实现的函数库
现有若干用C++编写的函数,为了能够用Python调用它们,可以通过pybind11将它们封装到一个Python模块中,在编写Python程序时只要导入该模块便能使用这些函数. 一.实现步骤 用C++ ...
- python grid函数_详解numpy中的meshgrid函数用法
numpy中的meshgrid函数的使用 numpy官方文档meshgrid函数帮助文档https://docs.scipy.org/doc/numpy/reference/generated/num ...
- 未捕获typeerror: $形象。cropper不是函数_没有学不会的python--细说自定义函数的细节...
没有学不会的python 函数是什么? 老调常谈,还是那老一套,学习一个东西前,先搞懂是什么,再来学习怎么用. 函数函数,如果你是刚经历过高考肯定很熟悉,数学中就经常出现这个名词,比如什么sin函数, ...
- python3_函数_形参调用方式 / 不定长参数 / 函数返回值 / 变量作用域 / 匿名函数 / 递归调用 / 函数式编程 / 高阶函数 / gobal和nonlocal关键字 / 内置函数
1.形参的调用方式 1. 位置参数调用 2. 关键词参数调用 原则: 关键词参数调用不能写在位置参数调用的前边 def test1(name, age):print("name:" ...
- 原生js已载入就执行函数_手写CommonJS 中的 require函数
前言 来自于圣松大佬的文章<手写CommonJS 中的 require函数> 什么是 CommonJS ? node.js 的应用采用的commonjs模块规范. 每一个文件就是一个模块, ...
- concat函数_三、P57-61 MySQL中常用函数
本部分主要讲解MySQL数据库中常用函数的使用. P57 SQL中的函数类型:字符串函数.数值函数.日期和时间函数.流程函数.其他常用函数: P58 第1部分:字符串函数 1.concat函数 con ...
- sigmoid函数_常用的激活(激励)函数——深度学习笔记(建议收藏)
激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...
- stat函数_数据分析工具入门 掌握这些Excel函数就够了
1.什么是函数 可以把函数理解为一个可以控制的黑箱子,输入X到黑箱子中,他就会输出Y,参数就是黑箱子的控制开关,打到不同的档位,黑箱子会输出不同的Y. 2.常见函数分类 文本清 ...
- matlab的tfdata函数_较全的matlab 命令和函数
d 菱形 -- 虚线 ^ 向上箭头 3.可以用subplot(3,3,1)表示将绘图区域分为三行三列,目前使用第一区域.此时如要画不同的图形在一个窗口里,需要hold on. ============ ...
最新文章
- Python 初学者常犯的5个错误,布尔型竟是整型的子类
- 事故通报绝不能一报了事22344
- nodejs中使用worker_threads来创建新的线程
- js 两个map合并为一个map_ArcGIS API for JS3.x教程二:构建第一个简单的程序
- ApplicationId 与 PackageName
- 嵌入式操作系统内核原理和开发(线程切换)
- 身处外包中!有过低谷 5年时间让我年薪近100W...我的不放弃,让我看见了最美的明天...
- 微擎自动回复 加粉丝名_如何一天加100个精准粉丝?蒋老师告诉你系统的套路和方法...
- 软件架构入门,看这篇就够了···
- 教你开发一个JS代码加密工具
- 在线html编辑器 菜鸟,菜鸟教程
- 苹果描述文件服务器证书无效,iOS 描述文件重新配置失效问题,解决方法!
- kk每日一句:第一句
- 木瓜移动每日资讯0602:“店小秘”宣布完成1.35亿元人民币B+轮融资
- 2021南京大学计算机考研分数线,2021年南京大学考研分数线公布
- 福岛第一核电站的辐射水平已明显下降
- img标签 图片报错处理
- 基于python的马尔科夫链在股价预测中的应用(基于Tushare)
- 【AGC001E】BBQ Hard(图论,dp)
- 小米4C直接解锁、刷入TWRP
热门文章
- 《区块链技术与应用》学习笔记10——ETH数据结构
- Pandas二次学习- 回炉重造(进阶)
- Stata:边际效应分析
- Chrome源码剖析——多线程模型、进程通信、进程模型
- c语言输出五角星程序,c语言入门之绘制五角星.doc
- Pulling 1 repository Exception caught during execution of merge command
- 猿创征文|OneOS 万耦启物TB6612驱动电机
- debian 安装打印机驱动及打印机共享
- 9.PMAC上位机-上位机发送指令
- 个人简历技能特长或爱好计算机,四种适合写进个人简历的特长或爱好