python中mod运算符_Python—运算符模块,pythonoperator

该模块包括3个类和一些常见的运算操作等等。因为该模块是C语言编写的,所以其中方法的运算比直接用python编写要快。方法前后可以有双下滑线,和不带下划线等价,比如

add

__add__

operator中的类可以生成模板,自定义顺序访问指定索引的值、指定属性或指定方法。

常用类

itemgetter

生成一个可以从输入对象中获得固定

索引

的取值的可调用对象。比如:

import operator

a=operator.itemgetter(2) #记录2作为索引

a([2,3,4,5]) #4

b=operator.itemgetter(3,2,1)

b(('a','b','c','d','e')) #('d','c','b')

通过该类可以指定索引和顺序,像是一个模板,将序列中对应索引的值按照模板的顺序输出。

attrgetter

理解了itemgetter,那么attrgetter也就很容易理解了,它生成一个可以从输入对象中获得固定

属性

的可调用对象。

假如实例r有属性length:

import operator

a=operator.attrgetter('length') #记着加引号

a(r) #r.length

methodcaller

生成一个可以从输入对象中获得固定

方法

的可调用对象。

import operator

a='123'

b=operator.methodcaller('isalpha') #记着加引号

b(a) #False 等价于a.isalpha()

a=[1,2,3,4,3]

b=operator.methodcaller('count'3) #3是count()的输入参数

b(a) #2 等价于a.count(3)

当需要访问很多不同对象的相同方法或属性,可以借助attrgetter和methodcaller方法生成一个模板,然后调用它。

常用方法

因为operator大部分是常见运算,所以我不用往常介绍+举例的方式了,直接列表对比供各位查阅:

数学计算

operator中的方法

意义

abs

绝对值

add(a, b)

a+b

sub(a, b)

a-b

mul(a, b)

a*b

truediv(a, b)

a/b

floordiv(a, b)

a//b (取商)

mod(a, b)

a%b (取模)

pow(a, b)

a**b (次方)

neg(a)

-a

pos(a)

+a

matmul(a, b)

a@b (矩阵乘法)

比较、判断运算

operator中的方法

意义

eq(a, b)

a==b

ne(a, b)

a!=b

ge(a, b)

a>=b

gt(a, b)

a>b

le(a, b)

a<=b

lt(a, b)

a

not_(a)

not a

truth(a)

a==True (判断a是否True)

is_(a, b)

a is b

is_not(a, b)

a is not b

位运算

operator中的方法

意义

and_(a, b)

&

or_(a, b)

|

xor(a, b)

^ (异或)

inv(a),invert(a)

~ (各位取反)

lshift(a, b)

<<

rshift(a, b)

>>

赋值运算

operator中的方法

意义

a=iadd(a, b)

a += b

a=isub(a, b)

a -= b

a = imul(a, b)

a *= b

a = itruediv(a, b)

a /= b

a = ifloordiv(a, b)

a //= b

a = imod(a, b)

a %= b

a = ipow(a, b)

a **= b

a = irshift(a, b)

a >>= b

a = ilshift(a, b)

a <<= b

a = ior(a, b)

a |= b

a = iand(a, b)

a &= b

a = ixor(a, b)

a ^= b

a = imatmul(a, b)

a @= b

a = iconcat(a, b)

a += b (a, b是序列)

序列操作

operator中的方法

意义

concat(a, b)

拼接两个序列

contains(a, b)

b in a

countOf(a, b)

a中b的次数

index(a)

a的索引

indexOf(a, b)

a中b的第一个索引

delitem(a, b)

del a[b] (删除a[b])

getitem(a, b)

a[b]

setitem(a, b, c)

a[b] = c

length_hint(obj, default=0)

len(obj) (求序列长度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值