Python operator模块的使用详解

 更新时间:2023年06月01日 11:30:51   作者:qq_36594703  
本文主要介绍了Python operator模块的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>

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常见MongoDB数据库操作实例总结

    Python常见MongoDB数据库操作实例总结

    这篇文章主要介绍了Python常见MongoDB数据库操作,结合实例形式详细总结了Python针对MongoDB数据库相关pymongo库安装以及MongoDB数据库的增删改查等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • BeautifulSoup中find和find_all的使用详解

    BeautifulSoup中find和find_all的使用详解

    这篇文章主要介绍了BeautifulSoup中find和find_all的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Qt实现炫酷启动图动态进度条效果

    Qt实现炫酷启动图动态进度条效果

    最近接到一个新需求,让做一个动效进度条。刚接手这个项目真的不知所措,后来慢慢理清思路,问题迎刃而解,下面小编通过本文给大家带来了Qt实现炫酷启动图动态进度条效果,感兴趣的朋友一起看看吧
    2021-11-11
  • python3 tkinter实现添加图片和文本

    python3 tkinter实现添加图片和文本

    这篇文章主要为大家详细介绍了python3 tkinter实现添加图片和文本,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • python openpyxl筛选某些列的操作

    python openpyxl筛选某些列的操作

    这篇文章主要介绍了python openpyxl筛选某些列的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python 制作糗事百科爬虫实例

    Python 制作糗事百科爬虫实例

    本文是结合前面的三篇关于python制作爬虫的基础文章,给大家分享的一份爬取糗事百科的小段子的源码,有需要的小伙伴可以参考下
    2016-09-09
  • Python Json读写操作之JsonPath用法详解

    Python Json读写操作之JsonPath用法详解

    JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java,这篇文章主要介绍了Python Json读写操作之JsonPath用法详解,需要的朋友可以参考下
    2023-04-04
  • Pytorch对Himmelblau函数的优化详解

    Pytorch对Himmelblau函数的优化详解

    今天小编就为大家分享一篇Pytorch对Himmelblau函数的优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Mac在python3环境下安装virtualwrapper遇到的问题及解决方法

    Mac在python3环境下安装virtualwrapper遇到的问题及解决方法

    这篇文章主要介绍了Mac在python3环境下安装virtualwrapper遇到的问题及解决方法,我在使用mac安装virtualwrapper的时候遇到了问题,搞了好长时间,,在这里总结一下分享出来,供遇到相同的问题的朋友使用,少走些弯路,需要的朋友可以参考下
    2019-07-07
  • Python中在脚本中引用其他文件函数的实现方法

    Python中在脚本中引用其他文件函数的实现方法

    下面小编就为大家带来一篇Python中在脚本中引用其他文件函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论