Articles of generador

creando un scipy.lil_matrix usando un generador de python de manera eficiente

Tengo un generador que genera una sola dimensión numpy.array s de la misma longitud. Me gustaría tener una matriz dispersa que contenga esos datos. Las filas se generan en el mismo orden en que me gustaría tenerlas en la matriz final. csr matrix es preferible a lil matrix, pero supongo que esto último será más […]

leyendo filas de un gran archivo csv en python

Tengo un archivo csv muy grande que no puedo cargar en la memoria completa. Así que quiero leerlo pieza por pieza, convertirlo en una matriz numpy y luego hacer un poco más de procesamiento. Ya verifiqué: ¿ Método perezoso para leer archivos grandes en Python? Pero el problema aquí es que es un lector normal […]

Cómo convertir generador o iterador a la lista de forma recursiva

Quiero convertir generador o iterador a la lista de forma recursiva. Escribí un código a continuación, pero parece ingenuo y feo, y se puede dejar el caso en doctest. Q1. Ayúdame buena versión. Q2. ¿Cómo especificar objeto es inmutable o no? import itertools def isiterable(datum): return hasattr(datum, ‘__iter__’) def issubscriptable(datum): return hasattr(datum, “__getitem__”) def eagerlize(obj): […]

¿Cómo usar random.shuffle () en un generador? python

¿Cómo uso random.shuffle () en un generador sin inicializar una lista desde el generador? ¿Es eso posible? si no, ¿de qué otra manera debería usar random.shuffle() en mi lista? >>> import random >>> random.seed(2) >>> x = [1,2,3,4,5,6,7,8,9] >>> def yielding(ls): … for i in ls: … yield i … >>> for i in random.shuffle(yielding(x)): […]

La forma pythonica de generar parejas.

Quiero algo como el código a continuación, pero el estilo “pythonic” o el uso de la biblioteca estándar: def combinations(a,b): for i in a: for j in b: yield(i,j)

Diferencia entre `rendimiento de foo ()` y `para x en foo (): rendimiento x`

En Python la mayoría de los ejemplos de rendimiento lo explican diciendo que yield from foo() es parecido a for x in foo(): yield x Por otro lado, no parece ser exactamente lo mismo y se ha introducido algo de magia. Me siento un poco incómodo al usar una función que hace magia que no […]

¿Qué hace la syntax de “rendimiento desde” en asyncio y en qué se diferencia de “esperar”?

Desde la perspectiva de alguien que ha escrito un código asyncio, pero está buscando entender mejor el funcionamiento interno, qué es lo que se yield from , lo que está await y cómo son útiles para permitir el código asíncrono. Hay una pregunta altamente valorada que pregunta sobre los usos del yield from syntax y […]

¿Cómo mapear o anidar los generadores de funciones de Python 2.7?

Si tengo un generador de funciones muy simple (aunque posiblemente muy complejo) en Python 2.7, así: def accumulator(): x = yield 0 while True: x += yield x Que se puede utilizar, como tal: >>> a = accumulator() >>> a.send(None) 0 >>> a.send(1) 1 >>> a.send(2) 3 >>> a.send(3) 6 ¿Cuál sería una envoltura simple […]

Python: ¿Por qué este código se considera un generador?

Tengo una lista llamada ‘mb’, su formato es: [‘Company Name’, ‘Rep’, Mth 1 Calls, Mth 1 Inv Totals, Mth 1 Inv Vol, Mth 2 …Y así En el siguiente código simplemente agrego una nueva lista de 38 0’s. Esto esta bien. Sin embargo, en la siguiente línea aparece un error: el objeto ‘generador‘ no admite […]

¿Por qué takewhile () omite la primera línea?

Tengo un archivo como este: 1 2 3 TAB 1 2 3 TAB Quiero leer las líneas entre TAB como bloques. import itertools def block_generator(file): with open(file) as lines: for line in lines: block = list(itertools.takewhile(lambda x: x.rstrip(‘\n’) != ‘\t’, lines)) yield block Quiero usarlo como tal: blocks = block_generator(myfile) for block in blocks: do_something(block) […]