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 […]
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 […]
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)
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 […]
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 ? […]
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): […]
(Para Python 3) En los documentos de python, puedes ver que la función list() toma un iterable. En los documentos de Python, también puede ver que la next() función next() toma un iterador. Así que hice esto en IDLE: >>> var = map(lambda x: x+5, [1,2,3]) >>> var >>> next(v) >>> list(v) Lo que da […]
¿Python tiene una incorporación (es decir, en las bibliotecas estándar) para hacer una división en cadenas que produce un iterador en lugar de una lista? Tengo en mente trabajar en cadenas muy largas y no necesito consumir la mayor parte de la cadena.
Me he estado preguntando si hay una manera de usar un iterador como nombre de variable en un bucle de Python. Por ejemplo, si quisiera crear objetos v0 , v1 , v2 , ¿hay alguna manera de hacer algo como esto: for i in range(3): v + str(i) = i**2 Sé que la syntax es […]
Como parte de algún middleware WSGI, quiero escribir una clase de python que envuelva un iterador para implementar un método de cierre en el iterador. Esto funciona bien cuando lo bash con una clase de estilo antiguo, pero lanza un TypeError cuando lo bash con una clase de estilo nuevo. ¿Qué debo hacer para que […]