Python中的operator.itemgetter函数和sorted函数

来源:互联网 发布:截面数据常用模型 编辑:程序博客网 时间:2024/05/20 01:34

operator.itemgetter()函数:

operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),例:

#coding:utf-8import operatora = [1,2,3]b = operator.itemgetter(1)print b(a)b = operator.itemgetter(1,0)print b(a)#输出2(2,1)

b = operator.itemgetter(1)获取的是对象的第一个域

而b = operator.itemgetter(1,0)获取的是对象的第一个域和第0个值

注意,operator.ietmgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。


sorted()排序函数

Python内置的排序函数sorted()可以对list或者iterator进行排序

#coding:utf-8import operator#students为类对象的list,每个成员有三个域students = [('john','A',15),('jane','B',12),('dave','B',10)]#key为函数,指定取待排序元素的哪一项进行排序b = sorted(students,key=lambda student:student[2])print b#[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]#利用operator.itemgetter()函数,指定取待排序元素的哪一项进行排序b = sorted(students,key=operator.itemgetter(2))print b#[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]#多级排序,先比较第一个域,在比较第二个域b = sorted(students,key=operator.itemgetter(1,2))print b#[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]#reverse参数是一个bool变量,表示升序还是降序(默认降序)升序:reverse=Trueb = sorted(students,key=operator.itemgetter(1,2),reverse=True)print b#[('jane', 'B', 12), ('dave', 'B', 10), ('john', 'A', 15)]
 
阅读全文
0 0
原创粉丝点击