Articles of iterador

Filtro de Python / combo máximo: comprobación del iterador vacío

(Utilizando Python 3.1) Sé que esta pregunta se ha preguntado muchas veces para la pregunta general de la prueba si el iterador está vacío; obviamente, no hay una solución clara para eso (supongo que por una razón: un iterador no sabe realmente si está vacío hasta que se le pide que devuelva su siguiente valor). […]

Iterabilidad en Python

Estoy tratando de entender Iterability en Python. Según tengo entendido, __iter__() debe devolver un objeto que tenga el método next() definido, que debe devolver un valor o boost la excepción StopIteration . Así escribí esta clase que satisface ambas condiciones. Pero no parece funcionar. ¿Qué está mal? class Iterator: def __init__(self): self.i = 1 def […]

El objeto ‘numpy.float64’ no es iterable

Estoy tratando de iterar una matriz de valores generados con numpy.linspace: slX = numpy.linspace(obsvX, flightX, numSPts) slY = np.linspace(obsvY, flightY, numSPts) for index,point in slX: yPoint = slY[index] arcpy.AddMessage(yPoint) Este código funcionó bien en la computadora de mi oficina, pero esta mañana me senté a trabajar desde casa en una máquina diferente y surgió este […]

entendiendo la función zip

Toda la discusión es sobre python 3.1.2; ver documentos de Python para la fuente de mi pregunta. Sé lo que hace zip ; Simplemente no entiendo por qué se puede implementar así: def zip(*iterables): # zip(‘ABCD’, ‘xy’) –> Ax By iterables = map(iter, iterables) while iterables: yield tuple(map(next, iterables)) Digamos que llamo zip(c1, c2, c3) […]

¿La forma correcta de restablecer csv.reader para múltiples iteraciones?

Tener un problema con un iterador personalizado en que solo se repetirá sobre el archivo una vez. Estoy llamando a seek(0) en el objeto de archivo relevante entre iteraciones, pero StopIteration se lanza en la primera llamada a next() en la segunda ejecución. Siento que estoy pasando por alto algo obvio, pero apreciaría algunos ojos […]

¿Cómo generar todas las cadenas posibles en python?

Mi objective es poder generar todas las cadenas posibles (letras y números) de longitud x y poder activar un bloque de código para cada una. (como un iterador) El único problema es que los de itertools no hacen copias de la letra en la misma cadena. Por ejemplo: Obtengo “ABC”, “BAC”, “CAB”, etc. en lugar […]

Cómo extender / concatenar dos iteradores en Python

Quiero concatenar dos iteradores de una manera eficiente. Supongamos que tenemos dos iteradores (en Python3) l1 = range(10) # iterator over 0, 1, …, 9 l2 = range(10, 20) # iterator over 10, 11, …, 19 Si los convertimos a listas, es fácil concatenar como y = list(l1) + list(l2) # 0, 1, ,…, 19 […]

¿Qué significa “tres puntos” en Python cuando se indexa lo que parece ser un número?

¿Cuál es el significado de x […] a continuación? a = np.arange(6).reshape(2,3) for x in np.nditer(a, op_flags=[‘readwrite’]): x[…] = 2 * x

Métodos que toman iteradores en lugar de iterables

Con respecto a los iteradores e iterables (solo mi observación y corríjame si me equivoco): La mayoría de los constructores (de tipo arrayish) toman iteradores como constructores de masa Los iteradores se hacen explícitamente; o usando x in x for…. Muchos métodos (en su mayoría, itertools ) devuelven iteradores (porque su trabajo es iterar). Métodos […]

Python JSON solo consigue claves en primer nivel

Tengo un objeto json muy largo y complicado, ¡pero solo quiero obtener los elementos / claves en el primer nivel! Ejemplo: { “1”: “a”, “3”: “b”, “8”: { “12”: “c”, “25”: “d” } } Quiero obtener 1,3,8 como resultado! Encontré este código: for key, value in data.iteritems(): print key, value Pero imprime todas las teclas […]