5.dropwhile():
Hacer un iterador que deje caer elementos del iterable mientras el predicado sea True,después devuelve cada elemento.El iterador no produce ninguna salida hasta que el predicado se convierta primero en False.
itertools.dropwhile(predicate,iterable)
6.takewhile():
Hace un iterador que devuelve elementos del iterable mientras el predicado sea True.
itertools.takewhile(predicate,iterable)
7. filterfalse():
Hace un iterador que filtra los elementos del iterable devolviendo sólo aquellos para los que el predicado es False.Si el predicado es None,devuelve los elementos que son False.
filter()
El método devuelve un iterador que contiene los elementos de un iterable para los que la función devuelve True.
itertools.filterfalse(predicate,iterables)
8.zip_longest():
Hace un iterador que agrega elementos de cada uno de los iterables. Si los iterables tienen una longitud desigual, el valor que falta se rellena con el valor de relleno. La iteración continúa hasta que se agota el iterable más largo.
En zip(), la iteración continúa hasta que se agota el iterable más corto.
itertools.zip_longest(*iterables,fillvalue=None)
9. starmap():
Hace un iterador que calcula la función usando los argumentos obtenidos del iterable. Se utiliza en lugar de map() cuando los parámetros de los argumentos ya están agrupados en tuplas a partir de un único iterable (los datos han sido «precomprimidos»).
itertools.starmap(function,iterable)
10. islice():
Hace un iterador que devuelve elementos seleccionados del iterable. Si start es None
, la iteración comienza en cero. Si step es None
, entonces el paso es por defecto uno.Si stop es None
, entonces la iteración continúa hasta que el iterador se agota, si es que lo hace; de lo contrario, se detiene en la posición especificada. islice()
no admite valores negativos para start,stop y step.
itertools.islice(iterable,stop)
itertools.islice(iterable, start, stop)
11.tee():
Devuelve n iteradores independientes de un único iterable.
itertools.tee(iterable,n=2)
12. groupby():
Hacer un iterador que devuelva claves y grupos consecutivos del iterable.
key es una función que calcula el valor de la clave para cada elemento.Si no se especifica key o None,key se convierte por defecto en una función de identidad y devuelve el elemento sin cambios.
itertools.groupby(iterable,key=None)
Iteradores combinatorios:
- producto():
Producto cartesiano de iterables de entrada.
Definición de producto cartesiano: El producto del conjunto X y el conjunto Y es el conjunto que contiene todos los pares ordenados ( x, y ) para los que x pertenece a X e y pertenece a Y.
Para calcular el producto de un iterable consigo mismo, especifique el número de repeticiones con el argumento opcional de la palabra clave repeat. Por ejemplo, product(A, repeat=4) significa lo mismo que product(A, A, A, A).
itertools.product(*iterables,repeat)
2. permutaciones():
Devuelve sucesivas r
permutaciones de longitud de los elementos del iterable. Si no se especifica r o es None, entonces r es por defecto la longitud del iterable y se generan todas las permutaciones posibles de longitud completa.Las tuplas de permutación se emiten en orden lexicográfico según el orden del iterable de entrada. Así, si el iterable de entrada está ordenado, las tuplas de combinación se producirán en orden ordenado.
Los elementos se tratan como únicos en función de su posición, no de su valor. Así que si los elementos de entrada son únicos, no habrá valores repetidos en cada permutación.
itertools.permutations(iterable,r=None)
Nota:En Permutaciones, el orden de los elementos importa.
3. combinaciones():
Devuelve r
secuencias de longitud de elementos del iterable de entrada.
Las tuplas de combinaciones se emiten en orden lexicográfico según el orden del iterable de entrada. Así, si el iterable de entrada está ordenado, las tuplas de combinación se producirán en orden ordenado.
Ordenación lexicográfica significa forma de ordenar las palabras en orden alfabético de las letras que las componen.
Los elementos se tratan como únicos en función de su posición, no de su valor. Por lo tanto, si los elementos de entrada son únicos, no habrá valores repetidos en cada combinación.
itertools.combinations(iterable, r)
4. combinations_with_replacement():
Devuelve r
subsecuencias de longitud de elementos del iterable de entrada permitiendo que elementos individuales se repitan más de una vez.
itertools.combinations_with_replacement(iterable, r)
Note:
1. Used as an argument in map() and zip():
count(),repeat()
repeat()- supply stream of constant values to map() or zip() function.
count()-it will supply different values to map() or zip() function.2.Difference between cycle() and repeat():
cycle()-iterates over the same object again and again
repeat()-returns the same object again and again.3.Difference between reduce() and itertools.accumulate():
reduce():
* It will return only the final accumulated value.
* First argument should be function and second argument should be iterable.
accumulate()
* It will return the running accumulated value.The elements in the output iterable will be equal to elements in the input iterable,if initial value is not mentioned.
* First argument should be iterable and second argument should be function.4.Difference between filter() and itertools.compress():
* filter()function-filters the given iterable with the help of function that test each element in the iterable is True or not.
* compress():filters the given iterable based on the corresponding element in the selector. Iterable containing True /False is given as selector.5.Difference between filter() and itertools.filterfalse():
*filter():Construct an iterator from the elements of iterable for which function returns True.
*filterfalse():Construct an iterator from the elements of iterable for which function returns False.6.Difference between zip() and itertools.zip_longest():
*zip():Iteration continues until shortest iterable is exhausted.
*zip_longest():Iteration continues until longest iterable is exhausted.7.Difference between list slicing and itertools.islice():
*List slicing creates new list
*islice()-Returns an iterator.We can loop through the iterator,in the way we want.
8.Difference between itertools.permutations() and itertools.combinations():
* itertools.permutations():Order of the elements does matters.
*itertools.combinations():Order of the elements doesn’t matters.
Both combinations and permutations doesn’t repeat values.
9.Difference between itertools.combinations() and itertools.combinations_with_replacement
* combinations():Order of element doesn’t matters and doesn’t repeat values.
* combinations_with_replacement():Order of element doesn’t matters and it repeats values.10.Difference between itertools.takewhile() and itertools.dropwhile():
* takewhile():Make an iterator that returns element from the iterable as long as the predicate is True.
* dropwhile():Make an iterator that drops element from the iterable as long as the predicate is True afterwards returns every element.