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))
浙公网安备 33010602011771号