Podstawowa składnia i użycie
Składnia funkcji dostępnych w module operatora jest dość prosta. Wywołujesz konkretną funkcję, która zwraca wynik po ocenie dostarczonych argumentów. Poniżej znajduje się przykład, który pokazuje obliczenia matematyczne wykonane przy użyciu różnych funkcji dostępnych w module operatora.
Operator importuPierwsza instrukcja importuje moduł operatora. Następne różne funkcje dostępne w module operatora, takie jak „Dodaj”, „sub”, „MUL” i „Truediv”, a dwie liczby dostarczane są im argumenty, aby można było na nich uruchomić operacje matematyczne. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
11Powyższy kod jest równoważny z następującymi stwierdzeniami w Python:
dodanie = 5 + 6W pierwszej próbce kodu, zamiast używać znaków lub symboli operatora, wywołujesz funkcje, aby wykonać te same obliczenia. Moduł operatora zawiera wiele innych takich funkcji użyteczności. Poniżej znajduje się przykład, który dokonuje porównań między dwiema liczbami.
Operator importuW powyższej próbce kodu różne funkcje, takie jak „eq”, „lt”, „le”, „ne”, „gt” i „ge” w celu określenia równości lub nierówności dwóch liczb dostarczanych jako argumenty tych funkcji. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
FAŁSZTa próbka kodu jest równoważna następującym stwierdzeniu:
równe = 5 == 6Lista przydatnych funkcji dostępnych w module operatora
Poniżej znajduje się tabela pokazująca niektóre przydatne funkcje dostępne w module operatora i ich równoważne stwierdzenia. Ta tabela została pobrana z oficjalnej dokumentacji Pythona dla modułu operatora.
Typ pracy / obliczeń | Funkcja podlegająca telefonie | Równoważna składnia |
---|---|---|
Dodatek | Dodaj (A, B) | A + B |
Powiązanie | Conat (SEQ1, SEQ2) | SEQ1 + SEQ2 |
Test ograniczenia | zawiera (SEQ, OBJ) | OBJ w SEQ |
Dział | Truediv (a, b) | A / b |
Dział | floordiv (a, b) | A // b |
Bitwise i | i_ (a, b) | A&B |
Bitwise Exclusive Or | xor (a, b) | a ^ b |
Inwersja bitwów | odwrócenie (a) | ~ a |
Bitwise lub | or_ (a, b) | A | B |
Wykładnik | pow (a, b) | a ** b |
Tożsamość | is_ (a, b) | a jest b |
Tożsamość | is_not (a, b) | A nie jest B |
Przypisanie indeksowane | setitem (obj, k, v) | obj [k] = v |
Indeksowane usunięcie | Detelm (OBJ, K) | del obj [k] |
Indeksowanie | getItem (obj, k) | obj [k] |
Lewa zmiana | LSHIFT (A, B) | A < |
Modulo | mod (a, b) | A % b |
Mnożenie | MUL (A, B) | a * b |
Mnożenie macierzy | Matmul (A, B) | A @ b |
Negacja (arytmetyka) | neg (a) | - A |
Negacja (logiczna) | Not_ (a) | ani |
Pozytywny | POS (a) | + A |
Prawa zmiana | RSHIFT (A, B) | a >> b |
Przypisanie kroi | setItem (SEQ, Slice (I, J), wartości) | SEQ [i: j] = wartości |
Usunięcie pokrój | Detelm (SEQ, Slice (I, J)) | del seq [i: j] |
Krajanie na plastry | getItem (SEQ, Slice (I, J)) | SEQ [I: J] |
Formatowanie ciągu | mod (s, obj) | s % obj |
Odejmowanie | sub (a, b) | a - b |
Test prawdy | Prawda (OBJ) | obj |
Zamawianie | LT (A, B) | A |
Zamawianie | LE (A, B) | A <= b |
Równość | Eq (a, b) | A == B |
Różnica | NE (A, B) | A != b |
Zamawianie | GE (A, B) | a> = b |
Zamawianie | GT (A, B) | a> b |
Możesz odwołać się do tej tabeli, aby znaleźć odpowiednią funkcję operatora odpowiednią dla wymagań dotyczących programowania.
Funkcje operatora w miejscu
Moduł operatora zawiera również ograniczony zestaw funkcji, które mogą wykonywać obliczenia „na miejscu”. Odbywa się to poprzez modyfikację samego obiektu, przekazując go jako argument do funkcji operatora. Takie nazwy funkcji są prefiksowane z znakiem „i”. Na przykład, aby zmodyfikować obiekt na miejscu i dodać coś do niego, będziesz musiał użyć funkcji „IADD” dostępnej w module operatora. Funkcje te są szczególnie przydatne w przypadku zmiennych obiektów, takich jak Python Dictionaries i listy. Poniżej znajduje się próbka kodu:
Operator importuTutaj funkcja „IADD” została użyta do połączenia dwóch obiektów typu listy w Pythonie. Lista, która zostanie zmodyfikowana na miejscu, jest dostarczana jako pierwszy argument, a następnie lista, którą należy połączyć. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
[1, 2, 3, 4, 5, 6, 7, 8]Pełną listę funkcji dostępnych w module operatora można znaleźć tutaj.
Korzystanie z funkcji Itemgetter
Możesz użyć funkcji „Itemgetter” dostępnej w module operatora do wybierania elementów z listy. Poniżej znajduje się podstawowy przykład:
Operator importuMetoda Itemgetter otrzymuje element po jego indeksie i jest szczególnie przydatna do zbierania wielu elementów za jednym razem. Druga instrukcja pokazuje użycie funkcji Itemgetter, w której indeksy dwóch elementów są dostarczane jako argumenty. Funkcja Itemgetter zwraca obiekt, który jest następnie wywoływany, podając mu listę Python jako argument. Wynik końcowy drugiego i trzeciego stwierdzenia jest taki sam. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
('pne')Wiele połączeń łączonych do funkcji Itemgetter można również zapisać w następujący sposób:
Operator importuFunkcję Itemgetter może być również używana jako klucz podczas sortowania zagnieżdżonej listy zawierającej inne listy lub krotki. Oto przykład:
Operator importuArgument „kluczowy” w funkcji sort. Ten obiekt do nazywania jest uruchamiany na każdym elemencie listy przed dokonaniem jakichkolwiek porównań dla celów sortowania. Dostarczając funkcję Itemgetter, które można znaleźć jako klucz, informujesz funkcję sortowania, aby odebrać element na indeksie „1” z każdej zagnieżdżonej listy i użyj go do celów porównawczych. Po uruchomieniu powyższej próbki kodu należy uzyskać następujące dane wyjściowe:
[['c', 1], ['a', 2], ['b', 4], ['d', 5]]Wniosek
Moduł operatora nie przynosi niczego nowego do tabeli, ponieważ używa symboli operatora pod spodem do wykonywania obliczeń. Możesz bardzo dobrze pisać proste instrukcje za pomocą symboli operatora. Są one jednak przydatne w scenariuszach, w których chcesz programowo wykonywać obliczenia, wywołując funkcje, przekazywanie takich funkcji, które można zapoznać się z argumentami i zastępować instrukcje Lambda czymś prostszym.