跳转到主内容
极星编程网:以代码为星,赴技术山海!

Python operator模块的使用详解

目录operator模块函数的种类比较运算逻辑运算数学运算序列运算attrgetter类itemgetter类operator模块operator 模块提供了一套与 Python 的内置运算符对应的高效率函数。

函数的种类函数包含的种类有:对象的比较运算、逻辑运算、数学运算和序列运算比较运算运算函数语法小于lt(a, b) a < b小于等于le(a, b) a <= b大于gt(a, b) a > b大于等于ge(a, b) a >= b等于eq(a, b) a == b不等于ne(a, b) a != b

实例:

>>> from operator import *>>> lt(1, 2) True>>> le(1, 3) True>>> le(3, 3) True>>> gt(10, 1) True>>> ge(10, 10) True>>> ge(10, 9) True>>> eq(10, 9) False>>> ne(10,10) False>>> ne(10, 9) True逻辑运算运算函数语法与and_(a, b) a & b或or_(a, b) a异或xor(a, b) a ^ b取反invert(a, b)~ a对象是否相等is_(a, b) a is b对象是否不相等is_not(a, b) a is not b真值truth(obj) obj

实例:

>>> from operator import *>>> and_(1, 1) 1>>> or_(1, 2) 3>>> xor(1, 2) 3>>> invert(True)-2>>> invert(1)-2>>> invert(2)-3>>> a = [1, 2, 3]>>> b = 3>>> is_(a, b) False>>> is_not(a, b) True>>> truth(a) True数学运算运算函数语法加add(a ,b) a + b除truediv(a, b) a / b乘mul(a, b) a * b减sub(a, b) a - b幂pow(a, b) a ** b负数neg(a)- a正数pos(a)+ a取模mod(a, b) a % b

实例:

>>> from operator import *>>> add(1, 2) 3>>> truediv(3, 2)

1.5

>>> mul(3, 2) 6>>> sub(3, 2) 1>>> pow(2, 8) 256>>> neg(5)-5>>> neg(-5) 5>>> pos(10) 10>>> pos(-10)-10>>> mod(10, 3) 1序列运算运算函数语法字符串拼接concat(seq1, seq2) seq1 + seq2包含contains(seq, obj) obj in seq索引赋值setitem(obj, i, v) obj[i] = v索引删除delitem(obj, i) del obj[i]索引取值getitem(obj, i) obj[i]切片赋值setitem(seq, slice(i, j), values) seq[i:j] = values切片删除delitem(seq, slice(i, j)) del seq[i:j]切片取值getitem(seq, slice(i, j)) seq[i:j]格式化mod(s, obj) s % obj

实例:

>>> from operator import *>>> concat('hello', ' Python')'hello Python'>>> a = [1, 3, 4]>>> contains(a, 2) False>>> setitem(a, 1, 5)>>> a[1, 5, 4]>>> delitem(a, 2)>>> a[1, 5]>>> getitem(a, 1) 5>>> setitem(a, slice(1, 3), 'ijk')>>> a[1, 'i', 'j', 'k']>>> delitem(a, slice(2, 3))>>> a[1, 'i', 'k']>>> mod('str %s', 'value')'str value'attrgetter类operator 模块的 attrgetter 类可以获取对象的属性用于 map(), stored() 操作attrgetter实例:from operator import *class Student:pass def __init__(self, name, score):self.name = name self.score = score def __repr__(self):return '%s(name=%r,score=%r)' % (self.__class__.__name__, self.name, self.score) if __name__ == '__main__':students = [Student("zhangSan", 89),Student("liSi", 60),Student("wangWu", 70),Student("xiaoMing", 100)]print("按照【分数】排序: ") print(sorted(students, key=attrgetter('score'), reverse=True)) g = attrgetter("score") # 获取【分数】属性vals = [g(i) for i in students]print ('获取分数属性:' + vals)itemgetter类operator 模块的 itemgetter 类会返回一个可调用对象,传入多个对象则返回元组itemgetter实例:>>> from operator import *>>> itemgetter(3)('abcdefg')'d'>>> itemgetter(1, 3, 4)('abcdefg') ('b', 'd', 'e')>>> itemgetter('name')({'name': 'liSi', 'age': 18})'liSi'>>> soldier = dict(rank='captain', name='dotterbart')>>> itemgetter('rank')(soldier)'captain'>>> inventory = [('apple', 8), ('banana', 2), ('pear', 7)]>>> getCount = itemgetter(1)>>> list(map(getCount, inventory))[8, 2, 7]>>> sorted(inventory, key = getCount)[('banana', 2), ('pear', 7), ('apple', 8)]到此这篇关于Python operator模块的使用详解的文章就介绍到这了,更多相关Python operator模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Python 中Operator模块的使用python函数enumerate,operator和Counter使用技巧实例小结Python利用operator模块实现对象的多级排序详解Python中operator模块的操作符使用示例总结Python标准库学习之operator.itemgetter函数的使用

相关文章