operator的itemgetter和attrgetter】的更多相关文章

前几天在给个list做排序的时候,隐隐约约想起来有个语法糖可以替代lambda函数,用来获取list中dict的key,作为排序的key. 这个语法糖平时用得少,怎么都想不起来.今天查看python标准库operator时,终于把这两个方法找到了,做个笔记. 因为就是一个语法糖,太简单了,没必要做太多解释说明,直接贴代码吧. from operator import itemgetter, attrgetter __author__ = 'blackmatrix' get_name = lamb…
itemgetter 用来获取数组中指定索引的元素 from operator import itemgetter itemgetter(1, 3, 5)('ABCDEFG') output: ('B', 'D', 'F') slice 用来为列表切片,也是获取指定索引的元素 a = slice(0,10,2) b = list(range(10)) b[a] b[0:10:2] itemgetter(a)(b) output: [0, 2, 4, 6, 8] [0, 2, 4, 6, 8] […
python的排序参见文章http://blog.csdn.net/longshenlmj/article/details/12747195 这里介绍 import operator模块 operator的itemgetter函数用于获取传入参数中某个域的值,如 a = [1,2,3]  >>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值 >>> b(a)  2  >>> b=operator.i…
## 字典列表排序 students = [ {"name": "Stanley", "age": 22, "score": 92}, {"name": "Peter", "age": 19, "score": 99}, {"name": "Well", "age": 23, "…
Python中使用operator模块实现对象的多级排序 今天碰到一个小的排序问题,需要按嵌套对象的多个属性来排序,于是发现了Python里的operator模块和sorted函数组合可以实现这个功能. 比如我有如下的类关系,A对象引用了一个B对象, class A(object): def __init__(self, b): self.b = b def __str__(self): return "[%s, %s, %s]" % (self.b.attr1, self.b.att…
# operator.itemgetter(*items) # 获取item >>> from operator import itemgetter # list使用下标进行返回 >>> a [('a', 1), ('b', 2), ('c', 3), ('d', 4)] >>> itemgetter(1)(a) # 获取a中下标为1的元组 ('b', 2) >>> itemgetter(1,3)(a) # 同时获取多个元组 (('b…
Operator--标准功能性操作符接口. 代码中使用迭代器时,有时必须要为一个简单表达式创建函数.有些情况这些函数可以用一个lambda函数实现,但是对于某些操作,根本没必要去写一个新的函数.因此operator模块定义了一些函数,这些函数对应于算术.比较和其他与标准对象API对应的操作. 1.逻辑操作符(Logical Operations) 下面函数用于确定一个值的布尔等价值,或者否定它创建相反的布尔值,或比较对象确定它们是否相同. from operator import * a = -…
operator模块 在函数式编程中,经常需要把算术运算符当作函数使用.例如,不使用 递归计算阶乘.求和可以使用 sum 函数,但是求积则没有这样的函数. 我们可以使用 reduce 函数(5.2.1 节是这么做的),但是需要一个函数 计算序列中两个元素之积.示例 5-21 展示如何使用 lambda 表达式解决 这个问题. 示例 5-21 使用 reduce 函数和一个匿名函数计算阶乘 from functools import reduce def fact(n): return reduc…
曾经客户端的同事用as写一大堆代码来排序,在得知python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多条件排序,如果积分相同,则按净胜球,再相同按进球数,再相同按失球数. 即按积分P.净胜球GD.进球GS.失球GA这样的顺序. 在python中,排序非常方便,排序的参数主要有key.reverse.参数cmp不建议使用了,在python3.0被移除了,用参数key代替. 对于多条件排序,也非常简单,只需要记住下面这句话就行. 即 参数ke…
itemgetter函数:对字典列表进行多键排序 from operator import itemgetter list_people = [ {'name': 'Mike', 'age': 22, 'score': 90}, {'name': 'Alice', 'age': 22, 'score': 90}, {'name': 'Lee', 'age': 26, 'score': 92}, {'name': 'Ben', 'age': 26, 'score': 85}, {'name': '…