הספריה operator מאפשרת שורה של פונקציות המקבילות לאופרטורים ההשוואתיים והאחראים לפעולות המתמטיות, המובנים בפייתון (כמו שווה, גדול, קטן, לא שווה, גדול שווה, כפל, חילוק, חיבור וכו'). נניח שיש לנו רשימה של המספרים 0 עד 9 ואנו רוצים לבחון מי מהם גדול מ- 5, במקום לרשום פונקציה שתערוך את הבדיקה אנו יכולים להשתמש במתודות של הספריה operator – המתודות הללו בעצם משוות עבורנו אלמנטים שונים, למשל ברשימה, או באובייקט איטרבילי אחר ויכולות להחזיר ערכים בוליאנים. הנה דוגמא –
import operator lista=[i for i in range(10)] for item in lista: print(operator.gt(5,item))
operator.gt משווה עבור אילו איברים ברשימה המספר חמש גדול יותר (greater than)
התוצאה המתקבלת מהפונקציה שלנו היא בוליאנית –
True
True
True
True
True
False
False
False
False
False
כלומר 5 גדול מחמשת האיברים הראשונים ברשימה, לכן מקבלים True בחמש הפעמים הראשונות ולאחר מכן Flase.
באותו אופן יש אפשרויות נוספות המקבילות לאופרטורים המובנים האחרים בפייתון, למשל operator.lt(x,y) מקביל ל- x<y
operator.eq(x,y) מקביל ל- x==y ואנו יכולים לקבל ערך בוליאני מתאים כאשר עורכים את ההשוואה הזאת. ניתן לצרף גם את הסיומות הבאות ל- operator -
le מקביל ל- x<=y
ne מקבילי ל- y != x
ge מקביל ל- x>=y
ניתן להשמש בספריה שלא למטרות השווה, למשל במקום פונקציה לכפל – באופן הבא –
import operator lista=[i for i in range(5)] for item in lista: m=operator.mul(item,10) print(m)
>>>
0
10
20
30
40
operator.add לחיבור
operator.mod לקבל שארית כמו במודולו %
operator.div לקבל מנה מפעולת חילוק
operator.pow לפעולת חזקה
ועוד (פעולות המקבילות למה שקיים באופן מובנה בפייתון).
אנו יכולים להפוך, כמו בתוכנית הבאה, את כל המספרים לנגניטיב שלהם –
import operator lista=[i for i in range(-2,2)] for item in lista: print(operator.neg(item))
>>>
2
1
0
-1
אנו יכולים לשלב את הפונקציות של operator עם מתודות נוספות, למשל כאשר אנו רוצים לבצע סדרה של פעולות בין שתי רשימות של מספרים כדי לקבל רשימה שלישית המשלבת את תוצאות הפעולה על איברים משתי הרשימות הראשונות- כמו בדוגמא הבאה -
import operator list1=[2,4,6] list2=[1,2,3] maping=map(operator.mul,list1,list2) print(list(maping))
>>>
[2, 8, 18]