Articles of generador de

Saltando el rendimiento en python

Estoy escribiendo un generator que toma un iterable y un entero n . Por ejemplo, si llamo a mi generador: generator(‘abcdefg’,2) entonces debería dar a , d , g saltándose 2 letras. Cuando llamo a iter(iterable) continuación, utilice el yield next el yield omite automáticamente 1 letra. ¿Cómo le diría a Python que omita el […]

generador de python: desempaquetar todo el generador en paralelo

Supongamos que tengo un generador cuya función next () es algo costosa y quiero intentar paralelizar las llamadas. ¿Dónde me meto en la paralización? Para ser un poco más concreto, considere este ejemplo: # fast, splitting a file for example raw_blocks = (b for b in block_generator(fin)) # slow, reading blocks, checking values … parsed_blocks […]

Tensorflow Dataset.from_generator falla con una excepción pyfunc

Estoy probando el 1.4 nocturno de tensorflow porque necesito que Dataset.from_generator reúna algunos conjuntos de datos de longitud variable. Este código simple (idea de aquí ): import tensorflow as tf Dataset = tf.contrib.data.Dataset it2 = Dataset.range(5).make_one_shot_iterator() def _dataset_generator(): while True: try: try: get_next = it2.get_next() yield get_next except tf.errors.OutOfRangeError: continue except tf.errors.OutOfRangeError: return # Dataset.from_generator […]

¿Cómo atravesar un árbol binario con un generador recursivo?

Estoy tratando de atravesar un árbol binario que se crea en el siguiente código. para ser precisos, el árbol binario es una clase y debe incluir un iterador que llame a otra función, a saber inorder (). este método debe ser un generador recursivo y generar el valor de los nodos en cada iteración. Intenté […]

Producto Python de generadores infinitos.

Estoy intentando obtener el producto de 2 generadores infinitos, pero la función del product en itertools no permite este tipo de comportamiento. Ejemplo de comportamiento: from itertools import * i = count(1) j = count(1) x = product(i, j) [Killed] Lo que quiero: x = product(i, j) ((0,0), (0,1), (1,0), (1,1) …) No importa en […]

multihilo: ¿Por qué los generadores no son seguros para subprocesos? ¿Qué pasa cuando se comparte entre hilos?

Estoy leyendo esta pregunta que pregunta si los generadores son seguros para subprocesos, y una respuesta dijo: No es seguro para subprocesos; Las llamadas simultáneas pueden intercalarse y desordenarse con las variables locales. Otra respuesta muestra que puede usar un locking para asegurarse de que solo un hilo use el generador a la vez. Soy […]

Expresión generadora que se asemeja al comportamiento de anexar

Esto es más un ejercicio de progtwigción que un problema del mundo real: estoy buscando una expresión generadora que se asemeje al comportamiento de append . Considerar: def combine(sequence, obj): for item in sequence: yield item yield obj s = ”.join(combine(sequence, obj)) Este generador básicamente se asemeja a append . En el flujo de trabajo […]

Usando itertools para la aplicación de la función recursiva

Necesito una función de Python iterate(f, x) que crea un iterador que devuelve los valores x, f (x), f (f (x)), f (f (f (x))), etc. (como, por ejemplo, Iteraciones de iterate ). En primer lugar, me preguntaba: ¿esto ya existe en algún lugar de la biblioteca estándar y solo me lo estoy perdiendo? Por […]

¿El depurador de Python paso en los generadores?

Actualmente estoy usando NetBeans IDE con Jython 2.5.1 Al depurar mi proyecto paso a paso, tan pronto como se encuentra una iteración sobre un generador, el depurador va directamente al final del código. La salida funciona bien, pero es imposible realizar una depuración paso a paso una vez que se cumple el primer generador. ¿Es […]

¿Se pueden usar generadores con string.format en python?

“{}, {}, {}”.format(*(1,2,3,4,5)) Huellas dactilares: ‘1, 2, 3’ Esto funciona, siempre que el número de {} en format no exceda la longitud de una tupla. Quiero que funcione para una tupla de longitud arbitraria, rellenándola con – s si es de longitud insuficiente. Y para evitar hacer suposiciones sobre el número de {} , quería […]