首页 > 编程语言 >0基础学习Python路径(40)operator模块

0基础学习Python路径(40)operator模块

时间:2024-09-02 11:52:06浏览次数:11  
标签:__ 10 obj name Python 40 operator True

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

标签:__,10,obj,name,Python,40,operator,True
From: https://blog.csdn.net/L08130421/article/details/141806013

相关文章

  • Python股票程序交易接口查账,提交订单,自动交易(2)
    Python股票接口实现查询账户,提交订单,自动交易(1)上一篇是获取数据,获取数据不难,有很多第三方库都可以获取,不一定非要用券商官方的接口,程序交易主要是交易的执行,这个没有官方接口是很难实现的。券商的接口不用担心安全和稳定的问题,相当于就是普通股票账户,开通了程序化交易的权......
  • AT32F403A通用定时器03
    上期:AT32F403A通用定时器02https://blog.csdn.net/weixin_64557865/article/details/140933118?spm=1001.2014.3001.5501目录一、输出部分1.PWM模式A2.PWM模式B3.强制输出模式4.输出比较模式5.单周期模式6.快速输出模式二、案例1.TMR联合DMA(1)功能(2)配置介绍步......
  • Python Poetry fails to add openai-whisper due to triton installation error
    题意:PythonPoetry因Triton安装错误而无法添加openai-whisper。问题背景:soimtryingtouseopenai-whisper.i'musingpoetryasmyenvanddependecymanager.butkeepgettingerrorswhentryingtodownloadit.theerrorigetis,Installingtriton(2.0.......
  • [oeasy]python0032_ 火星文字幕_os_操作系统的作用_time_sleep_延迟
     032导入_import_os_time_延迟字幕效果_道德经文化_非主流火星文154播放·0赞同视频​ show:stepversion:1.0enable_checker:trueHelloWorld!回忆上次内容这次我们了解了unix系统在multics项目失败后汤普森和里奇为了玩游戏自制了u......
  • Python/MySQL无法正确持久化整数数据
    如果在Python中使用MySQL时无法正确持久化整数数据,可能有以下几个原因:数据类型不匹配:确保在MySQL表中定义的列的数据类型与你在Python中要插入或更新的整数数据类型相匹配。例如,如果列的数据类型是INT,则在Python中应该使用整数类型(如int)来表示数据。连接参数问题:检查你......
  • Python中手动实现进制转换
    在《Python中进制转换》中提到可以使用bin()、oct()、int()和hex()等函数编程实现数字间的进制转换。除了编程实现进制转换外,还可以通过手动实现。1手动实现二进制数转换为十进制可以通过“填空法”手动将二进制数转换为十进制数,例如将二进制数“0b1101”转换为十进制数的方......
  • 2025毕业设计选题|基于Python实现地方美食导游平台
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待......
  • 2025毕业设计选题|基于Python实现地方美食导游平台
    作者主页:编程千纸鹤作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与......
  • python django 使用教程
    前言pythondjango使用起来简单方便,大大节省开发时间,提高开发效率,现在介绍下如何使用一、创建Django项目首先,建立虚拟环境,(最好养成一个项目一个环境的习惯,防止多个项目pip包混乱问题),打开pycharm新建Django项目(专业版才可以有这个功能,网上搜一下,一大堆方法,懂得都懂......
  • Python控制流:循环语句(for, while)②
    文章目录前言1.`for`循环1.1遍历列表1.2遍历字符串1.3使用`range()`函数1.4`enumerate()`函数1.5`zip()`函数2.`while`循环2.1基本用法2.2无限循环2.3使用`break`和`continue`语句3.嵌套循环4.常见错误和最佳实践4.1常见错误4.2最佳实践5.......