Python?operator模塊的使用詳解
operator模塊
operator 模塊提供了一套與 Python 的內(nèi)置運算符對應(yīng)的高效率函數(shù)。
函數(shù)的種類
函數(shù)包含的種類有:對象的比較運算、邏輯運算、數(shù)學(xué)運算和序列運算
比較運算
運算 | 函數(shù) | 語法 |
---|---|---|
小于 | 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
邏輯運算
運算 | 函數(shù) | 語法 |
---|---|---|
與 | 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
數(shù)學(xué)運算
運算 | 函數(shù) | 語法 |
---|---|---|
加 | 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 |
負數(shù) | neg(a) | - a |
正數(shù) | 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
序列運算
運算 | 函數(shù) | 語法 |
---|---|---|
字符串拼接 | 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("按照【分?jǐn)?shù)】排序: ") ? ? print(sorted(students, key=attrgetter('score'), reverse=True)) ? ? g = attrgetter("score") # 獲取【分?jǐn)?shù)】屬性 ? ? vals = [g(i) for i in students] ? ? print ('獲取分?jǐn)?shù)屬性:' + vals)
itemgetter類
operator 模塊的 itemgetter 類會返回一個可調(diào)用對象,傳入多個對象則返回元組
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)]
到此這篇關(guān)于Python operator模塊的使用詳解的文章就介紹到這了,更多相關(guān)Python operator模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中列表添加元素的幾種方式(+、append()、extend())
本文主要介紹了python中列表添加元素的幾種方式(+、append()、extend()),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python基礎(chǔ)學(xué)習(xí)之深淺拷貝問題及遞歸函數(shù)練習(xí)
在實際工作中,經(jīng)常涉及到數(shù)據(jù)的傳遞。這篇文章主要為大家介紹了Python的一些基礎(chǔ)學(xué)習(xí):深拷貝與淺拷貝問題、遞歸函數(shù)的練習(xí),需要的朋友可以參考一下2021-12-12Django自定義插件實現(xiàn)網(wǎng)站登錄驗證碼功能
這篇文章主要為大家詳細介紹了Django自定義插件實現(xiàn)網(wǎng)站登錄驗證碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04解決Python 異常TypeError: cannot concatenate ''str'' and ''int''
這篇文章主要介紹了解決Python 異常TypeError: cannot concatenate 'str' and 'int' objects,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04刪除DataFrame中值全為NaN或者包含有NaN的列或行方法
今天小編就為大家分享一篇刪除DataFrame中值全為NaN或者包含有NaN的列或行方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11python基于tkinter圖形化編程實現(xiàn)簡易計算器功能
這篇文章主要為大家詳細介紹了python基于tkinter圖形化編程實現(xiàn)簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07