Python中sorted参数的设计
来源:互联网 发布:微信砸金蛋源码下载 编辑:程序博客网 时间:2024/06/06 02:17
Python中的lambda函数
- lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的。lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数。lambda的目的就是简化用户定义使用函数的过程。
- 函数定义:lambda [arguments]: expression。例如:
log2 = lambda x:log(x) / log(2)
再例如:
>>>bar=lambda :'this is a bar'>>>print barthis is a bar
python中的operator.itemgetter()和operator.attrgetter()函数
- 在排序时, 可以用lambda表达式将对象map成keys;例如
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]sorted(students, key=lambda student : student[2])
- 亦可以使用operator包中的attrgetter和itemgetter函数以提高效率
a = [1,2,3] >>> b=operator.itemgetter(1) //定义函数 b,获取对象的第1个域的值>>> b(a) //现在定义的b相当于一个运算符,现在给它一个参数a,就可以运算2 >>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值>>> b(a) (2, 1)
operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),看上面例子,attrgetter则是取字典中相应键的值,看下面例子:
# 考虑 Student 对象class Student: def __init__(self, name, grade, age): self.name = name self.grade = grade self.age = age def __repr__(self): return repr((self.name, self.grade, self.age))# 建立一组Student对象students = [ Student('jane', 'B', 12), Student('john', 'A', 12), Student('dave', 'B', 10),]from operator import itemgetter, attrgetter# 对students按照年龄排序print sorted(students, key=attrgetter('age'))# 其等价于print sorted(students, key=lambda o: o.age)# 输出: >>> [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]# 亦可以按多个key排序, 先按age再按grade排序print sorted(students, key=attrgetter('age', 'grade'))# 输出: >>> [('dave', 'B', 10), ('john', 'A', 12), ('jane', 'B', 12)]
阅读全文
0 0
- Python中sorted参数的设计
- Python 中 sorted 的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- python中sorted()函数的应用
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python中sorted函数的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python中sorted()方法的用法
- Python中sorted函数的用法
- Python中sorted函数的用法
- Python中sorted函数的使用
- Python中sorted函数的用法
- Python中sorted函数的用法
- Python中sort 、sorted、argsort的区别
- c语言:对转义字符的认识
- python+selenium自动化软件测试
- 电路实践
- windbg调试堆
- 两台Linux系统之间传输文件的几种方法
- Python中sorted参数的设计
- TCP
- Servlet学习笔记—response详解
- CentOS克隆后配置静态IP
- Linux centos7 安装 Jenkinsjenkins-2.87-1.1.noarch.rpm
- JVM的内存区域划分
- PHP编程过程中需要了解的this,self,parent的区别
- CSS3 perspective-origin
- python中对象相等判断(is、==与__dict__的使用)