operator মডিউল কী?
পাইথনের বিল্ট-ইন অপারেটরগুলো (যেমন +, -, ==, [ ]) ফাংশন আকারে উপলব্ধ। হাই-অর্ডার ফাংশন (map, filter, sorted ইত্যাদি) এর সাথে ব্যবহারে সুবিধা হয়।
ইমপোর্ট
import operator
অ্যারিথমেটিক অপারেটর ফাংশন
| ফাংশন | সমান | উদাহরণ |
operator.add(x, y) | x + y | add(2, 3) → 5 |
operator.sub(x, y) | x - y | sub(5, 3) → 2 |
operator.mul(x, y) | x * y | mul(4, 5) → 20 |
operator.truediv(x, y) | x / y | truediv(7, 2) → 3.5 |
operator.floordiv(x, y) | x // y | floordiv(7, 2) → 3 |
operator.mod(x, y) | x % y | mod(7, 3) → 1 |
operator.pow(x, y) | x ** y | pow(2, 10) → 1024 |
রিলেশনাল/কমপেরিজন অপারেটর ফাংশন
| ফাংশন | সমান | উদাহরণ |
operator.lt(x, y) | x < y | lt(2, 3) → True |
operator.le(x, y) | x <= y | le(3, 3) → True |
operator.eq(x, y) | x == y | eq(5, 5) → True |
operator.ne(x, y) | x != y | ne(5, 3) → True |
operator.gt(x, y) | x > y | gt(5, 3) → True |
operator.ge(x, y) | x >= y | ge(5, 5) → True |
লজিক্যাল/বুলিয়ান অপারেটর
| ফাংশন | সমান |
operator.not_(x) | not x |
operator.truth(x) | bool(x) |
operator.is_(x, y) | x is y |
operator.is_not(x, y) | x is not y |
বিটওয়াইজ অপারেটর
| ফাংশন | সমান |
operator.and_(x, y) | x & y |
operator.or_(x, y) | x | y |
operator.xor(x, y) | x ^ y |
operator.invert(x) | ~x |
operator.lshift(x, y) | x << y |
operator.rshift(x, y) | x >> y |
কন্টেইনার/সিকোয়েন্স অপারেটর
| ফাংশন | সমান | বিবরণ |
operator.getitem(obj, key) | obj[key] | ইন্ডেক্সিং/কী লুকআপ |
operator.setitem(obj, key, val) | obj[key] = val | অ্যাসাইনমেন্ট |
operator.delitem(obj, key) | del obj[key] | ডিলিশন |
operator.contains(obj, item) | item in obj | মেম্বারশিপ টেস্ট |
operator.concat(a, b) | a + b | সিকোয়েন্স কনক্যাট |
operator.indexOf(a, x) | a.index(x) | ইন্ডেক্স খোঁজা (৩.১০+) |
operator.countOf(a, x) | a.count(x) | কাউন্ট (৩.১০+) |
প্র্যাক্টিক্যাল উদাহরণ: sorted() এ key হিসেবে
from operator import itemgetter, attrgetter, methodcaller
# ডিকশনারির লিস্ট সর্ট
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}]
sorted_by_age = sorted(data, key=itemgetter('age'))
# [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}]
# অবজেক্ট অ্যাট্রিবিউট দিয়ে সর্ট
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person('Alice', 30), Person('Bob', 25)]
sorted_people = sorted(people, key=attrgetter('age'))
# মেথড কল করে সর্ট
words = ['apple', 'banana', 'cherry']
sorted_by_upper = sorted(words, key=methodcaller('upper'))
অন্যান্য উপকারী ফাংশন
operator.itemgetter(*items) — একাধিক আইটেম একসাথে গেট (টাপল রিটার্ন)
operator.attrgetter(*attrs) — একাধিক অ্যাট্রিবিউট একসাথে গেট
operator.methodcaller(name, *args, **kwargs) — মেথড কলার ফাংশন বানায়
operator.length_hint(obj) — লেনথ অনুমান (৩.৪+)