Articles of iterador de

¿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é […]

Ventana deslizante flexible (en Python)

Descripción del problema: Me interesa mirar los términos en la ventana de texto de, digamos, 3 palabras a la izquierda y 3 a la derecha. El caso base tiene la forma de w-3 w-2 w-1 término w + 1 w + 2 w + 3. Quiero implementar una ventana deslizante sobre mi texto con la […]

saltando una línea al leer un archivo con un bucle for

Estoy tratando de encontrar una manera de omitir las siguientes dos líneas en un archivo si una condición en la primera línea es verdadera. ¿Alguna idea sobre una buena manera de hacer esto? Esto es lo que tengo hasta ahora … def main(): file = open(r’C:\Users\test\Desktop\test2.txt’, ‘r+’) ctr = 1 for current_line in file: assert […]

¿Existe una forma elegante de recorrer una lista N veces a través de la iteración (como itertools.cycle pero limita los ciclos)?

Me gustaría recorrer una lista repetidamente (N veces) a través de un iterador, para no almacenar N copias de la lista en la memoria. ¿Existe una forma integrada o elegante de hacer esto sin escribir mi propio generador? Idealmente, itertools.cycle (my_list) tendría un segundo argumento para limitar la cantidad de ciclos que realiza … por […]

Si un iterador de Python devuelve objetos iterables, ¿cómo puedo encadenar esos objetos en un gran iterador?

Daré un ejemplo simplificado aquí. Supongamos que tengo un iterador en Python, y cada objeto que devuelve este iterador es iterable. Quiero tomar todos los objetos devueltos por este iterador y encadenarlos en un iterador largo. ¿Hay una utilidad estándar para hacer esto posible? Aquí hay un ejemplo artificial. x = iter([ xrange(0,5), xrange(5,10)]) x […]

Enviando StopIteration a for loop desde fuera del iterador

Hay varias formas de romper algunos bucles nesteds Son: 1) usar break-continue for x in xrange(10): for y in xrange(10): print x*y if x*y > 50: break else: continue # only executed if break was not used break 2) utilizar retorno def foo(): for x in range(10): for y in range(10): print x*y if x*y […]

¿Cómo contar elementos no nulos en un iterable?

Estoy buscando una solución Pythonic mejor / más para el siguiente fragmento de código count = sum(1 for e in iterable if e)

¿Existe una forma “de una sola línea” de obtener una lista de claves de un diccionario en orden ordenado?

El método list sort() es una función modificadora que devuelve None . Por eso, si quiero recorrer todas las claves de un diccionario, no puedo hacerlo: for k in somedictionary.keys().sort(): dosomething() En su lugar, debo: keys = somedictionary.keys() keys.sort() for k in keys: dosomething() ¿Hay una manera bonita de recorrer estas claves en orden ordenado […]

__siguiente__ en generadores e iteradores y ¿qué es un envoltorio de métodos?

Estaba leyendo sobre el generador y los iteradores y el papel de __next__() . ‘__next__’ in dir(mygen) . es verdad ‘__next__’ in dir(mylist) , es falso Mientras miraba más adentro, ‘__next__’ in dir (mylist.__iter__()) es verdadero ¿por qué __next__ solo está disponible para la lista pero solo para __iter__() y mygen pero no mylist ? […]

iterador de Python a través del árbol con lista de niños

No entiendo completamente los iteradores de Python, obtuve un objeto con una lista de niños y quiero recorrer esta estructura. Quiero obtener el mismo comportamiento que con la función printall pero con un iterador. class t: def __init__(self, i): self.l = [] self.a = 0 for ii in range(i): self.a = ii self.l.append(t(i-1)) def __iter__(self): […]