首页 > 编程语言 >Python中operator 模块的用法

Python中operator 模块的用法

时间:2024-04-17 16:13:22浏览次数:28  
标签:__ 10 obj name Python 模块 operator True

operator 模块提供了一套与 Python 的内置运算符对应的高效率函数。

1.函数的种类

函数包含的种类有:对象的比较运算、逻辑运算、数学运算和序列运算

2.比较运算

运算 函数 语法
小于 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

3.逻辑运算

运算 函数 语法
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

4.数学运算

运算 函数 语法
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

5.序列运算

运算 函数 语法
字符串拼接 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'

6.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)]

	#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
    print("按照【分数】排序: ")
    print(sorted(students, key=attrgetter('score'), reverse=True))

    g = attrgetter("score") # 获取【分数】属性
    vals = [g(i) for i in students]
    print ('获取分数属性:' + vals)

7.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)]

标签:__,10,obj,name,Python,模块,operator,True
From: https://www.cnblogs.com/djdjdj123/p/18141001

相关文章

  • 工程化、模块化、组件化 开发工作中这三项有什么区别
    工程化:定义:工程化是一种遵循一定标准和规范,通过工具提高效率、降低成本的开发手段。它涉及整个开发流程的规划和管理,确保项目能够按照预定的目标和质量要求完成。关注点:工程化关注于整体的开发流程、项目结构、工具链的整合以及团队协作等方面。它强调使用工具和自动化手段来优......
  • Python中pathlib 模块的用法
    pathlib模块提供了表示文件系统路径的类,可适用于不同的操作系统。使用pathlib模块,相比于os模块可以写出更简洁,易读的代码。pathlib模块中的Path类继承自PurePath,对PurePath中的部分方法进行了重载,相比于os.path有更高的抽象级别。本文将带你学习如何使用pathlib......
  • Python中itertools 模块的用法
    在Python中,迭代器是一种非常好用的数据结构,其最大的优势就是延迟生成,按需使用,从而大大提高程序的运行效率。而itertools作为Python的内置模块,就为我们提供了一套非常有用的用于操作可迭代对象的函数。常用功能1.count功能详解count(start=0,step=1)函数有两个参数,其中......
  • Python中容易被忽略的内置类型
    Python中的内置类型是我们开发中最常见的,很多人都能熟练的使用它们。然而有一些内置类型确实不那么常见的,或者说往往会被我们忽略,所以这次的主题就是带领大家重新认识这些“不同寻常”的内置类型。1.frozenset不可变集合(frozenset)与普通的set一样,只不过它的元素是不可变的,因此......
  • Python读取和生成excel文件
    在Python中,你可以使用第三方库来读取和生成Excel文件。其中,最常用的库是pandas/openpyxl和xlwt/xlrd。Pandas安装Pandas库:pipinstallpandas要读取Excel文件,你可以使用pandas的read_excel函数。下面是一个示例代码,演示了如何使用pandas读取Excel文件中的数据:importpan......
  • conversion-operator
    参考文档user-definedconversionfunction-cppreference.comTheSafeBoolIdiom-知乎一般形式为operator*type*()const,比如:operatorint()const;operatorbool()const;operatorAA()const;自定义类型转换structTo{To()=default;To(conststru......
  • Python科学计算基础教程 ([印] Hemant Kumar Mehta 著;陶俊杰, 陈小莉 译)
    电子版获取:2huo点vip我的读书笔记:NumPy和SciPy:介绍使用NumPy进行数组操作和SciPy进行科学计算的基础知识。数据可视化:使用Matplotlib、Seaborn或其他库创建图表和可视化。数据处理和清洗:使用Pandas进行数据操作、清洗和分析。机器学习和深度学习:使用Scikit-learn、Tens......
  • Python量化交易系统实战--设计交易策略:择时策略
     作者:麦克煎蛋  出处:https://www.cnblogs.com/mazhiyong/转载请保留这段声明,谢谢! 一、双均线策略1、什么是均线2、双均线策略  3、生成交易信号简单的根据金叉和死叉生成交易信号:defma_strategy(data,short_window=5,long_window=20):"""双均线策......
  • Python-数字取证秘籍(三)
    Python数字取证秘籍(三)原文:zh.annas-archive.org/md5/941c711b36df2129e5f7d215d3712f03译者:飞龙协议:CCBY-NC-SA4.0第六章:阅读电子邮件和获取名称的配方本章涵盖了以下配方:解析EML文件查看MSG文件订购外卖盒子里有什么?解析PST和OST邮箱介绍一......
  • Python-并行编程秘籍(五)
    Python并行编程秘籍(五)原文:zh.annas-archive.org/md5/e472b7edae31215ac8e4e5f1e5748012译者:飞龙协议:CCBY-NC-SA4.0第九章:调试阶段这最后一章将介绍两个重要的软件工程主题——调试和测试,这是软件开发过程中的重要步骤。本章的第一部分专注于代码调试。错误是程序中的错......