Python中operator 模块的用法

这篇具有很好参考价值的文章主要介绍了Python中operator 模块的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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实例:文章来源地址https://www.toymoban.com/news/detail-854655.html

>>> 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 模块的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python中pathlib 模块的用法

    pathlib 模块提供了表示文件系统路径的类,可适用于不同的操作系统。 使用 pathlib 模块,相比于 os 模块可以写出更简洁,易读的代码。pathlib 模块中的 Path 类继承自 PurePath,对 PurePath 中的部分方法进行了重载,相比于 os.path 有更高的抽象级别。 本文将带你学习如何使用 pat

    2024年04月17日
    浏览(40)
  • Python中paramiko 模块的用法

    paramiko 是一个用 Python 语言编写的、遵循 SSH2 协议、支持以加密和认证方式进行连接远程服务器的模块。改模块可以对远程服务器进行一些命令或文件操作。 使用 pip3 安装 paramiko 模块 连接远程服务器 paramiko 模块连接远程服务器可以使用远程服务器的用户名、密码登录 在登录

    2024年04月13日
    浏览(36)
  • Python中itertools 模块的用法

    在 Python 中,迭代器是一种非常好用的数据结构,其最大的优势就是延迟生成,按需使用,从而大大提高程序的运行效率。而 itertools 作为 Python 的内置模块,就为我们提供了一套非常有用的用于操作可迭代对象的函数。 1.count 功能详解 count(start=0,step=1) 函数有两个参数,其中

    2024年04月17日
    浏览(36)
  • python基础教程:re模块用法详解

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可 二、re模块的方法介绍 1、匹配类方

    2024年02月11日
    浏览(43)
  • c++中的operator的用法

      一种是operator overloading(操作符重载) 一种是operator casting(操作隐式转换) C++可以通过operator实现重载操作符,格式如下: 类型T operator 操作符 () C++可以通过operator实现重载隐式转换,格式如下: operator T () 在C++中, operator() 是一种函数调用运算符重载。通过重载 operator(

    2024年02月02日
    浏览(34)
  • python re 模块 findall 函数用法简述

    import re s = \\\"adfad asdfasdf asdfas asdfawef asd adsfas \\\"   reObj1 = re.compile(\\\'((w+)s+w+)\\\') reObj1.findall(s) [(\\\'adfad asdfasdf\\\', \\\'adfad\\\'), (\\\'asdfas asdfawef\\\', \\\'asdfas\\\'), (\\\'asd adsfas\\\', \\\'asd\\\')]   reObj2 = re.compile(\\\'(w+)s+w+\\\') reObj2.findall(s) [\\\'adfad\\\', \\\'asdfas\\\', \\\'asd\\\']   reObj3 = re.compile(\\\'w+s+w+\\\') reObj3.findall(s) [\\\'adfad asdfasdf\\\', \\\'as

    2024年01月18日
    浏览(42)
  • Python入门教程23:math模块的用法

    **math是Python 的一个内置模块,它提供了许多数学函数和常量,用于进行数学计算。**以下是一些常用的math模块中的函数和常量: math.pi:圆周率π的近似值,约等于3.14159。 math.e:自然对数的底数e的近似值,约等于2.71828。 math.sqrt(x):求平方根。 math.pow(x, y):求x的y次方。 ma

    2024年02月12日
    浏览(43)
  • 【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

    目录 一、定位页面元素方法源码说明  (1)Webdriver.common (2)selenium.webdriver.common.by (3)By 二、定位页面元素方法用法汇总 (1)2.0 及以下低版本 selenium :By 定位页面元素方法用法(可忽略) (2)3.0 ~ 3.9 版本 selenium:By 定位页面元素方法用法 (3)4.0 ~ 4.9 版本 selenium:

    2023年04月13日
    浏览(90)
  • python中的 collections 模块(用法、详解、底层原理,示例等)

    1.1 defaultdict 功能 可以设置一个默认值作为字典中新key的默认值。该默认值可以是任何对象, 包括函数、列表、元组、集合等。默认值不需要像dict那样事先定义,因为它在需要的时候会自动创建 使用defaultdict,可以简化代码并提高代码的可读性,而且可以防止KeyError异常的出

    2024年04月29日
    浏览(39)
  • 【python】程序运行添加命令行参数argparse模块用法详解

     很多时候,我们的程序要带参数来运行不同的功能,需要解析命令行参数。argparse模块能够很好的提供支持。 argparse是 python 自带的命令行参数解析包,用于解析命令行参数的标准模块。可以让人轻松编写用户友好的命令行接口,还会自动生成帮助和使用手册,并在用户给程

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包