python库函数operator

operator模块主要包括一些python内部操作符对应的函数。这些函数主要分为几类:对象比较、逻辑比较、算术运算和序列操作

操作

 语法

函数

相加

a + b 

add(a, b)

字符串拼接

seq1 + seq2

concat(seq1, seq2)

包含测试

obj in seq

contains(seq, obj)

普通除法

a / b

truediv(a, b)

取整除法

a // b

floordiv(a, b)

按位与

a & b

and_(a, b)

按位异或

a ^ b

xor(a, b)

按位取反

~ a

invert(a)

按位或

a | b

or_(a, b)

指数运算

a ** b

pow(a, b)

识别

a is b

is_(a, b)

识别

a is not b

is_not(a, b)

索引赋值

obj[k] = v

setitem(obj, k, v)

索引删除

del obj[k]

delitem(obj, k)

索引

obj[k]

getitem(obj, k)

左移

a << b

lshift(a, b)

取模

a % b

mod(a, b)

乘法

a * b

mul(a, b)

负数

-a

neg(a)

非运算

not a

not_(a)

正数

+ a

pos(a)

右移运算

a >> b 

rshift(a, b)

切片赋值

seq[i:j] = values

setitem(seq, slice(i, j), values)

切片删除

del seq[i:j]

delitem(seq, slice(i, j))

切片

seq[i: j]

getitem(seq, slice(i, j))

字符串格式化

s % obj

mod(s, obj)

减法

a - b

sub(a, b)

真值测试

obj

truth(obj)

小于

a < b

lt(a, b)

小于等于

a <= b

le(a, b)

等于

a == b

eq(a, b)

不等于

a != b

ne(a, b)

大于等于

a >= b

ge(a, b)

大于 

a > b

gt(a, b)

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函数用来排序,sorted(iterable[, cmp[, key[, reverse]]])

其中key的参数为一个函数或者lambda函数。所以itemgetter可以用来当key的参数

a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

根据第二个域和第三个域进行排序

sorted(students, key=operator.itemgetter(1,2))

 

posted @ 2020-09-01 11:32  小龙虾爱大龙虾  阅读(511)  评论(0)    收藏  举报