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)
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 […]
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 […]
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 […]
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 […]
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) […]
Pasaba por Python Generators Wiki cuando me topé con esta página de RangeGenerator que habla sobre irange() – Esto nos permitirá iterador en grandes tramos de números sin tener que recurrir a xrange, que es una lista perezosa en lugar de un generador. Parece que no puedo entender el conjunto de pruebas y la implementación […]
Actualmente estoy trabajando en el Tour of Go , y pensé que los goroutines se han usado de manera similar a los generadores de Python, particularmente con la Pregunta 66 . Pensé que el 66 parecía complejo, así que lo reescribí a esto: package main import “fmt” func fibonacci(c chan int) { x, y := […]
Estoy tratando de convertir una biblioteca síncrona para usar un marco de E / S asíncrono interno. Tengo varios métodos que se parecen a esto: def foo: …. sync_call_1() # synchronous blocking call …. sync_call_2() # synchronous blocking call …. return bar Para cada una de las funciones síncronas ( sync_call_* ), he escrito una […]
Después de ejecutar este código en Python 3: import pdb def foo(): nums = [1, 2, 3] a = 5 pdb.set_trace() foo() Las siguientes expresiones funcionan: (Pdb) print(nums) [1, 2, 3] (Pdb) print(a) 5 (Pdb) [x for x in nums] [1, 2, 3] pero la siguiente expresión falla: (Pdb) [x*a for x in nums] *** […]