欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?operator模塊的使用詳解

 更新時間:2023年06月01日 11:30:51   作者:qq_36594703  
本文主要介紹了Python?operator模塊的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>

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)文章

最新評論