Itertools to jeden z najbardziej użytecznych modułów dostarczanych przez Pythona. Jego funkcje ułatwiają pracę z listami i tablicami. Niezależnie od tego, czy potrzebujesz wszystkich permutacji wartości w tablicy, czy chcesz pogrupować znaki z ciągu, Itertools mogą pomóc.

Pisanie kodu dla takich typowych przypadków może być żmudne i podatne na błędy. Dlatego programiści stworzyli biblioteki, które robią to wszystko za Ciebie. Możesz korzystać z tych funkcji, importując Itertools. W tym artykule dowiesz się o module Itertools w Pythonie i jego funkcjach.

Oficjalny Pyton dokumentacja wyjaśnia, że ​​Itertools zawiera kod do budowania iteratorów. Ten moduł zapewnia szybkie i wydajne funkcje do pracy z listami i tablicami.

Przed użyciem tego modułu musisz go zaimportować, używając następującej składni:

importować itertools

W tym module występują trzy różne typy iteratorów.

  1. Nieskończone iteratory
  2. Iteratory kombinatoryczne
  3. Zakańczanie iteratorów

Nieskończone iteratory

Nieskończone iteratory mogą uruchamiać pętlę w nieskończoność. Te funkcje są częściej uruchamiane za pomocą

dla pętli. Istnieją trzy nieskończone iteratory.

1. liczyć (start, krok)

ten liczyć() funkcja przyjmuje dwa parametry: początek i krok. Pętla zaczyna się od wartości początkowej i zwraca wartości, które zwiększają się krokowo, co domyślnie wynosi 1. Rozważmy poniższy przykład: pętla zaczyna się od 2 i za każdym razem doda 2. Pętla pęka, gdy wartość i staje się 10.

dla mnie w itertools.count (2,2):
jeśli ja == 10:
przerwa
w przeciwnym razie:
drukuj (i, end=" ")

Wyjście:

2 4 6 8 

2. powtórz (liczba, razy do powtórzenia)

ten powtarzać() funkcja przyjmuje dwa parametry. Pierwsza to wartość, którą funkcja generuje wielokrotnie. Drugi parametr to liczba powtórzeń liczby. Jeśli nie określisz drugiego parametru, pętla będzie działać w nieskończoność.

dla mnie w itertools.repeat (2,5):
drukuj (i, end=" ")

Wyjście:

2 2 2 2 2 

3. cykl (wejście)

ten cykl() funkcja iteruje po wejściu i drukuje poszczególne pozycje w podanej kolejności. Kiedy osiągnie koniec swojego wejścia, cykl uruchamia się od początku.

c = 0
zmienna = "12345"
for i w itertools.cycle (var):
jeśli c == 12:
przerwa
w przeciwnym razie:
c = c + 1
drukuj (i, end=" ")

Wyjście:

1 2 3 4 5 1 2 3 4 5 1 2

Iteratory kombinatoryczne

Iteratory kombinatoryczne zapewniają funkcje do wykonywania permutacji, kombinacji i produktów kartezjańskich.

1. produkt (wejście)

ten produkt() funkcja oblicza iloczyn kartezjański określonego wejścia. Ma parametr powtarzania, który oblicza iloczyn kartezjański iteratora z samym sobą. Jest to parametr opcjonalny.

tablica = [1,2,3]
drukuj (lista (itertools.product (tablica, powtórz=2)))
ciąg = "ABC"
print (lista (itertools.product (ciąg, "XYZ")))

Wyjście:

Przykład 1 [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
Przykład 2 [('A', 'X'), ('A', 'Y'), ('A', 'Z'), ('B', 'X'), ('B', 'Y '), ('B', 'Z'), ('C', 'X'), ('C', 'Y'), ('C', 'Z')]

2. permutacje (dane wejściowe, rozmiar)

Ta funkcja zwraca krotkę wszystkich permutacji danego elementu iteracyjnego. Przyjmuje dwa parametry: iterowalny i rozmiar grupy. Jeśli rozmiar grupy nie zostanie określony, utworzy grupy o tej samej długości, co sam element iteracyjny.

przykł = [1,2,3,4]
drukuj (lista (itertools.permutations (arr, 2)))

Wyjście:

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]

Związane z: Funkcje Pythona, które powinieneś znać

3. kombinacje (wejście, długość)

ten kombinacje() funkcja pomaga obliczyć kombinacje danego iteratora. Zauważ, że ta funkcja zachowuje kolejność elementów swoich danych wejściowych. Podczas permutacje zawiera wartości różniące się tylko kolejnością, kombinacje wytwarza unikalne wartości.

przykł = [1,2,3,4]
drukuj (lista (itertools.combinations (arr, 3)))

Wyjście:

[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]

Zakańczanie iteratorów

Iteratory kończące generują dane wyjściowe na podstawie warunków danych wejściowych. Możesz to najlepiej zrozumieć z kilku przykładowych funkcji.

1. akumuluj (wejście, operator)

ten gromadzić() funkcja przyjmuje dwa argumenty: iterowalny i operator. Generuje dane wyjściowe, stosując operator do skumulowanej sumy i każdego elementu wejściowego po kolei. Operator jest argumentem opcjonalnym. Jeśli go nie zaliczysz, ta funkcja wykona dodawanie.

operator importu
przykł = [1,2,3,4]
drukuj (lista (itertools.accumulate (arr)))
print (lista (itertools.accumulate (arr, operator.sub)))

Wyjście:

[1, 3, 6, 10]
[1, -1, -4, -8]

2. mapa gwiezdna (funkcja, wejście)

ten mapa gwiazd() funkcja przyjmuje funkcję i listę krotek jako swoje argumenty. Oblicza zwracane wartości, stosując funkcję do każdej krotki w danych wejściowych. W podanym przykładzie ta funkcja obliczy maksymalną wartość każdej krotki i zwróci ją w postaci tablicy.

arr = [(1,2,3), (4,5,6), (7,8,9)]
drukuj (lista (itertools.starmap (max, arr)))

Wyjście:

[3, 6, 9]

Związane z: Jak tworzyć i używać krotek w Pythonie?

3. fałsz filtru (funkcja)

ten filtr-fałsz() funkcja zwraca wartości, które nie spełniają warunku w przekazanej funkcji. Podany poniżej kod usuwa wszystkie nieparzyste wartości.

przykł = [1,2,3,4]
print (lista (itertools.filterfalse (lambda x: x % 2 != 0, arr)))

Wyjście:

[2, 4]

Kontynuuj swoją przygodę z kodowaniem w Pythonie

Teraz, gdy znasz już moduł Itertools, nadszedł czas na poznanie innych modułów Pythona. Python posiada moduły i biblioteki do szerokiego zestawu zadań. Obejmują one zaawansowane koncepcje, takie jak transformacja Fouriera i aplikacje AI/ML.

Niektóre moduły są bardziej skomplikowane niż inne i ich nauka zajmie więcej czasu. Moduł Tkinter umożliwia budowanie pełnych aplikacji GUI w Pythonie.

Jak zbudować kalkulator w Tkinter?

Popraw swoje umiejętności w języku Python Tkinter dzięki temu projektowi dla początkujących.

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Programowanie
  • Programowanie
  • Pyton
O autorze
Unnati Bamania (11 opublikowanych artykułów)

Unnati to entuzjastyczny programista full stack. Uwielbia budować projekty w różnych językach programowania. W wolnym czasie uwielbia grać na gitarze i jest entuzjastką gotowania.

Więcej od Unnati Bamania

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować