当前位置:
首页 > Python基础教程 >
-
Python operator模块的使用详解
本文主要介绍了Python operator模块的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
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模块内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/qq_36594703/article/details/130888582
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比