Funkcje iteratorów w Python | Zestaw 2 (islice (), gwiezdna mapa (), tee () ..)

| |

1. islice (iterowalny, start, stop, krok) : — ten iterator wybiórczo drukuje wartości, do których odwołuje się jego iterowalny kontener przekazany jako argument. Ten iterator przyjmuje 4 argumenty, kontener iteracyjny, pozycję początkową, pozycję końcową i krok.

2. mapa gwiazd (funkcja, lista krotek) : — Ten iterator przyjmuje funkcję i listę krotek jako argument i zwraca wartość zgodnie z funkcją z każdej krotki na liście.

# kod w Python demonstrujący, jak to działa
# islice () i mapa nieba ()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# lista inicjująca

li = [ 2 , 4 , 5 , 7 , 8 , 10 , 20 ]


# zainicjuj listę krotek

li1 = [( 1 , 10 , 5 ), ( 8 , 4 , 1 ), ( 5 , 4 , 9 ), ( 11 , 10 , 1 )]


# przy użyciu islice ( ) aby podzielić listę zgodnie z... potrzebą
# rozpoczyna drukowanie od 2. indeksu do 6. przeskoku 2

print ( "Wartości podzielonej listy to:" , end = "")

print ( lista (itertools.islice (li, 1 , 6 , 2 ) ))


# używając mapy gwiazd () do wybrania wartości wg. function
# wybiera minimum wszystkich wartości krotek

print ( "Wartości wg funkcji to:" , end = "")

print ( lista (itertools.starmap ( min , li1)))

Dane wyjściowe:

 Wartości wyciętej listy to: [4, 7, 10] Wartości wg. do działania to: [1, 1, 4, 1] 

3. takewhile (func, iterable) : — ten iterator jest przeciwieństwem drop while (), drukuje wartości aż funkcja zwróci false za pierwszym razem.

4. tee (iterator, liczba) : — Ten iterator dzieli kontener na wiele iteratorów wymienionych w argumencie.

# kod Pythona demonstrujący, jak to działa
# takewhile () i tee ()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# lista inicjująca

li = [ 2 , 4 , 6 , 7 , 8 , 10 , 20 ]


# zapisz listę w iteratorze

iti = iter (li)


# using takewhile (), aby wydrukować wartości, dopóki warunek nie jest fałszywy.

print ( " Lista wartości ​​do pierwszej fałszywej wartości: " , end = " ")

print ( lista (itertools.takewhile ( lambda x: x % 2 = = 0 , li)))


# za pomocą tee ( ) aby wyświetlić iteratory
# tworzy listę 3 iteratorów o tej samej wartości.

it = itertools.tee (iti , 3 )


# drukowanie wartości iteratorów

print ( „Iteratory to:” )

for i w zakresie ( 0 , 3 ): < /p>

print ( list (it [i]))

Dane wyjściowe:

Wartości listy do pierwszej fałszywej wartości to: [2, 4, 6] Iteratory to: [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7, 8, 10, 20] [2, 4, 6, 7 , 8, 10, 20]

5. zip_longest (iterable1, iterable2, fillval.) : &# 8212; ten iterator drukuje wartości elementów iteracyjnych pojedynczo . Jeśli jedna z iteracji zostanie wydrukowana w całości, pozostałe wartości zostaną wypełnione wartościami przypisanymi do fillvalue .

# kod Pythona demonstrujący, jak to działa
# zip_longest ()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# za pomocą zip_longest (), aby połączyć dwie iteracje.

print ( "Połączone wartości​ iterowalnych to :" )

print ( * (itertools.zip_longest ( ’GesoGes’ , ’ ekfrek’ , fillvalue = ’_’ )))

Dane wyjściowe:

 Połączone wartości iterowalnych to: (’G’,’ e’) (’e ’,’ k’) (’s’,’ f’) (’o’,’ r ’) (’G’, ’e’) (’e’, ’k’) (’s’, ’_’ ) 

Iteratory kombinatoryczne

1. produkt (iter1, iter2) : — Ten iterator drukuje iloczyn kartezjański dwóch iterowalnych kontenerów przekazanych jako argumenty.

2. permutacje (iter, group_size) : — ten iterator drukuje wszystkie możliwe permutacje wszystkich elementów elementu iteracyjnego. Rozmiar każdej grupy permutacji jest określany przez argument group_size .

# Python — kod demonstracyjny
# product() i permutation()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# używanie product() do wydrukowania produktu kartezjańskiego

print ( "Iloczyn kartezjański pojemników to:" )

print ( lista (itertools.product ( ’AB’ , ’ 12’ ))))


# użyj permutacji do obliczenia wszystkich możliwych permutacji

print ( "Wszystkie permutacje danego kontenera to:" < klasa kodu = "plain">)

print ( list (itertools.permutations ( ’GfG’ , 2 ))))

Dane wyjściowe:

 Iloczyn kartezjański pojemników to: [(’A’, ’1’), (’ A ’, ’2’), (’ B’, ’1’), (’ B’, ’2’)] Wszystkie permutacje danego kontenera to: [(’ G’, ’f’), (’ G ’, ’G’), (’f’, ’G’), (’f’, ’G’), (’G’, ’G’), (’G’, ’f’)] 

3. kombinacje (iterowalne, group_size) : — ten iterator drukuje wszystkie możliwe kombinacje (bez zamiany) kontenera przekazanego w argumentach w określonym rozmiarze grupy w posortowanej kolejności.

4. combinations_with_replacement (iterowalny, group_size) : — ten iterator wyświetla wszystkie możliwe kombinacje (z zamianą) kontenera przekazanego w argumentach w określonym rozmiarze grupy w posortowanej kolejności.

# kod Pythona demonstrujący, jak to działa
# kombinacja () i kombinacja_with_replacement ()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# użyj kombinacji (), aby wydrukować każdą kombinację
# (bez zamienników)

print ( "Cała kombinacja kontenera w posortowanej kolejności (bez zastępowania) to: " )

print ( lista (itertools.combinations ( ’1234’ , 2 )))


# za pomocą kombinacji_with_replacement () do wydrukowania każdej kombinacji
# z zamiennikiem

print ( "Wszystkie kombinacje kontenerów w posortowanej kolejności (z zamianą ) to:" )

print ( lista (itertools.combinations_with_replacement ( ’GfG’ , 2 )))

Dane wyjściowe:

 Cała kombinacja kontenera w posortowanej kolejności (bez zastępowania) to: [(’ 1’,’ 2’), (’ 1’, ’3’), (’ 1’, ’4’), (’ 2’, ’3’), (’ 2’, ’4’), (’ 3’, ’4 ’)] Cała kombinacja kontenerów w posortowanej kolejności (z zamianą) to: [(’ G’, ’G’), (’ G’, ’f’), (’ G’, ’G ’), (’f’, ’f’), (’f’, ’G’), (’G’, ’G’)] 

Nieskończony iteratory

1. liczba (początek, krok) : — Ten iterator rozpoczyna drukowanie od „startu” i drukuje w nieskończoność . Jeśli wymienione są kroki, liczby są pomijane, w przeciwnym razie krok to domyślnie 1.

Przykład:

 iterator.count (5,2) drukuje - 5,7,9,11 .. . nieskończenie 

2. pętla (iterowalna) : — ten iterator drukuje wszystkie wartości w kolejności z przekazanego kontenera. Wznawia drukowanie od początku, gdy wszystkie elementy są powtarzane .

Przykład:

 iterator.cycle ([1,2,3,4]) drukuje - 1,2,3,4,1,2,3,4,1 . .. nieskończenie 

3. powtórz (val, num) : — Ten iterator wielokrotnie drukuje przekazaną wartość nieskończoną liczbę razy. Jeśli wymieniono liczbę, są one do tej liczby.

# kod Pythona demonstrujący, jak to działa
# powtórz ()


# import & quot; itertools & quot; dla operacji iteracyjnych

import itertools


# użycie repeat() do wielokrotnego drukowania liczby

print ( "Częste drukowanie liczb:" )

print ( lista (itertools.repeat ( 25 , 4 )) )

Dane wyjściowe:

 Drukowanie wielokrotne liczby: [25, 25, 25, 25] 

Ten artykuł dzięki uprzejmości Manjeet Singh . Jeśli jesteś Python.Engineering i chcesz wnieść swój wkład, możesz również napisać artykuł, korzystając z Contribute.python.engineering lub publikując artykuł przyczynić się @ python.engineering. Zobacz mój artykuł na stronie głównej Python.Engineering i pomóż innym maniakom.

Prosimy o publikowanie komentarzy, jeśli znajdziesz coś złego lub jeśli chcesz podzielić się więcej informacjami na temat omówiony powyżej.