def apply(op, x, y): return op(x, y) from operator import mul print(apply(mul, 3, 7)) print((lambda x, y: x ^ y)(7, 10)) from operator import xor print(xor(7, 10)) from operator import length_hint iterator = iter([2, 4, 12, 5, 18, 7]) print(length_hint(iterator)) print(iterator.__length_hint__()) from operator import countOf print(countOf([1, 4, 7, 15, 7, 5, 4, 7], 7)) from operator import indexOf print(indexOf([1, 4, 7, 15, 7, 5, 4, 7], 7)) rows = [ {"name": "John", "surname": "Doe", "id": 2}, {"name": "Andy", "surname": "Smith", "id": 1}, {"name": "Joseph", "surname": "Jones", "id": 3}, {"name": "Oliver", "surname": "Smith", "id": 4}, ] from operator import itemgetter sorted_by_name = sorted(rows, key=itemgetter("surname", "name")) print(sorted_by_name) print(min(rows, key=itemgetter("id"))) class Order: def __init__(self, order_id): self.order_id = order_id def __repr__(self): return f"Order({self.order_id})" orders = [Order(23), Order(6), Order(15), Order(11)] from operator import attrgetter print(sorted(orders, key=attrgetter("order_id"))) orders = [ {"date": "07/10/2021", "id": 10001}, {"date": "07/10/2021", "id": 10002}, {"date": "07/12/2021", "id": 10003}, {"date": "07/15/2021", "id": 10004}, {"date": "07/15/2021", "id": 10005}, ] from operator import itemgetter from itertools import groupby orders.sort(key=itemgetter("date")) for date, rows in groupby(orders, key=itemgetter("date")): print(f"On {date}:") for order in rows: print(order) print() # Sort dict by value from operator import itemgetter products = { "Headphones": 55.90, "USB drive": 12.20, "Ethernet Cable": 8.12, "Smartwatch": 125.80, } sort_by_price = sorted(products.items(), key=itemgetter(1)) print(sort_by_price) # Find index of maximum value in array prices = [55.90, 12.20, 8.12, 99.80, 18.30] index, price = max(enumerate(prices), key=itemgetter(1)) print(index, price) # Sort list of tuples based on their indices names = [ ("John", "Doe"), ("Andy", "Jones"), ("Joseph", "Smith"), ("Oliver", "Smith"), ] print(sorted(names, key=itemgetter(1, 0)))