Un iterador es un objeto que se puede recorrer a través de todos sus valores. En pocas palabras, los iteradores son tipos de datos sobre los que se puede hacer un bucle. Los generadores son iteradores, pero como no pueden generar return
valores yield
, generan resultados cuando se ejecutan, utilizando la función ‘rendimiento’. Los generadores pueden ser recursivos al igual que las funciones. Estos generadores recursivos que se utilizan para simplificar construcciones combinatorias como permutaciones, combinaciones y productos cartesianos se denominan iteradores combinatorios .
En python hay 4 iteradores combinatorios:
- Producto()
Esta herramienta calcula el producto cartesiano de iterables de entrada. Para calcular el producto de un iterable consigo mismo, usamos el
repeat
argumento de palabra clave opcional para especificar el número de repeticiones. La salida de esta función estátuples
ordenada.Sintaxis:
product(iterables*, repeat=1)
Ejemplos:
# import the product function from itertools module
from
itertools
import
product
print
(
"The cartesian product using repeat:"
)
print
(
list
(product([
1
,
2
], repeat
=
2
)))
print
()
print
(
"The cartesian product of the containers:"
)
print
(
list
(product([
'geeks'
,
'for'
,
'geeks'
],
'2'
)))
print
()
print
(
"The cartesian product of the containers:"
)
print
(
list
(product(
'AB'
, [
3
,
4
])))
Producción:
The cartesian product using repeat: [(1, 1), (1, 2), (2, 1), (2, 2)] The cartesian product of the containers: [('geeks', '2'), ('for', '2'), ('geeks', '2')] The cartesian product of the containers: [('A', 3), ('A', 4), ('B', 3), ('B', 4)]
- permutaciones()
Permutations()
como el nombre habla por sí mismo, se utiliza para generar todas las permutaciones posibles de un iterable. Todos los elementos se tratan como únicos en función de su posición y no de sus valores. Esta función toma un iterable y group_size, si el valor de group_size no se especifica o es igualNone
, entonces el valor de group_size se convierte en la longitud del iterable.Sintaxis:
permutations(iterables*, group_size=None)
Ejemplo:
# import the product function from itertools module
from
itertools
import
permutations
print
(
"All the permutations of the given list is:"
)
print
(
list
(permutations([
1
,
'geeks'
],
2
)))
print
()
print
(
"All the permutations of the given string is:"
)
print
(
list
(permutations(
'AB'
)))
print
()
print
(
"All the permutations of the given container is:"
)
print
(
list
(permutations(
range
(
3
),
2
)))
Producción:
All the permutations of the given list is: [(1, 'geeks'), ('geeks', 1)] All the permutations of the given string is: [('A', 'B'), ('B', 'A')] All the permutations of the given container is: [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
- Combinaciones():
Este iterador imprime todas las combinaciones posibles (sin reemplazo) del contenedor pasado en argumentos en el tamaño de grupo especificado en orden.
Sintaxis:
combinations(iterables*, group_size)
Ejemplos:
# import combinations from itertools module
from
itertools
import
combinations
print
(
"All the combination of list in sorted order(without replacement) is:"
)
print
(
list
(combinations([
'A'
,
2
],
2
)))
print
()
print
(
"All the combination of string in sorted order(without replacement) is:"
)
print
(
list
(combinations(
'AB'
,
2
)))
print
()
print
(
"All the combination of list in sorted order(without replacement) is:"
)
print
(
list
(combinations(
range
(
2
),
1
)))
Producción:
All the combination of list in sorted order(without replacement) is: [('A', 2)] All the combination of string in sorted order(without replacement) is: [('A', 'B')] All the combination of list in sorted order(without replacement) is: [(0,), (1,)]
- Combinaciones_con_reemplazo():
Esta función devuelve una subsecuencia de longitud n de los elementos del iterable donde n es el argumento que toma la función para determinar la longitud de las subsecuencias generadas por la función. Los elementos individuales pueden repetirse en la función combinaciones_con_reemplazo.
Sintaxis:
combinations_with_replacement(iterables*, n=None)
Ejemplos:
# import combinations from itertools module
from
itertools
import
combinations_with_replacement
print
(
"All the combination of string in sorted order(with replacement) is:"
)
print
(
list
(combinations_with_replacement(
"AB"
,
2
)))
print
()
print
(
"All the combination of list in sorted order(with replacement) is:"
)
print
(
list
(combinations_with_replacement([
1
,
2
],
2
)))
print
()
print
(
"All the combination of container in sorted order(with replacement) is:"
)
print
(
list
(combinations_with_replacement(
range
(
2
),
1
)))
Producción:
All the combination of string in sorted order(with replacement) is: [('A', 'A'), ('A', 'B'), ('B', 'B')] All the combination of list in sorted order(with replacement) is: [(1, 1), (1, 2), (2, 2)] All the combination of container in sorted order(with replacement) is: [(0,), (1,)]
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA