yo esperaría que el siguiente fragmento que me diera un iterador produciendo pares del producto cartesiano de los dos iterables de entrada:¿Por qué obtengo un MemoryError con itertools.product?
$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import itertools
>>> one = xrange(0, 10**9)
>>> two = (1,)
>>> prods = itertools.product(one, two)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
En cambio, aparece un MemoryError
. Pero pensé que itertools.product
no almacenaba los resultados intermedios en la memoria, entonces, ¿qué está causando el MemoryError
?
Gracias por completar la motivación de la implementación. Supongo que la única otra forma de evitar esto sería insistir en que los elementos que se proporcionan también se pueden copiar de alguna manera. – detly
Tengo el origen del problema. ¿Pero qué es una solución si uno necesita funcionalidad de producto()? –