operator

这个模块包含一组用C实现的函数,这些函数能够实现 Python 对应的运算操作符,常见的用法如下:

In [1]: import operator

In [2]: operator.lt(2, 3)    # 判断第一个参数是否小于第二个参数
Out[2]: True

In [3]: operator.gt(2, 3)    # 判断第一个参数是否大于第二个参数
Out[3]: False

In [4]: operator.ne(2, 3)    # 判断第一个参数是否不等于第二个参数
Out[4]: True

In [5]: operator.abs(-5)     # 相当于abs()函数,用于取一个数的绝对值
Out[5]: 5

In [6]: operator.pow(2, 3)   # 相当于pow()函数,表示2的3次方
Out[6]: 8

特殊用法:operator模块提供的 itemgetter() 函数用于获取一个可迭代对象的指定索引的数据,用法如下

In [12]: l = ['a', 'b', 'c']              # 先定义一个可迭代对象

In [13]: op = operator.itemgetter(1)      # operator.itemgetter(1) 表示获取索引值为1的数据,我们把他赋值给op,op相当于一个函数

In [14]: op(l)                            # op这个函数接收一个可迭代的对象,结果相当于获取这个可迭代对象的索引值为1的数据
Out[14]: 'b'

In [15]: op = operator.itemgetter(1, 2)   # 同上,表示获取索引值为1或索引值为2的数据

In [16]: op(l)
Out[16]: ('b', 'c')

optrator.itemgetter() 通常与 sorted() 函数结合使用,用来对字典进行排序:

In [1]: import operator

In [2]: x = {1:2, 3:4, 4:3, 2:1, 0:0}

In [3]: sorted(x.iteritems(), key=operator.itemgetter(0))    # 根据字典的key进行排序
Out[3]: [(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)]

In [4]: sorted(x.iteritems(), key=operator.itemgetter(1))    # 根据字典的value进行排序
Out[4]: [(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

 

 

 

 

 

 

 

    

posted @ 2019-01-21 17:23  孔雀东南飞  阅读(701)  评论(0编辑  收藏  举报