Articles of iterador

Dividir una cadena en segmentos de 2 letras

Tengo una cadena que necesito dividir en partes de 2 letras. Por ejemplo, ‘ABCDXY’ debería convertirse en [‘AB’, ‘CD’, ‘XY’] . El comportamiento en el caso de un número impar de caracteres puede ser completamente arbitrario (verificaré la longitud por adelantado). ¿Hay alguna manera de hacer esto sin un bucle feo?

¿Cuál es la diferencia entre la lista y el iterador en Python?

Estoy leyendo el libro Think Python: Cómo pensar como un científico informático , que dice que en Python 3.x, dict([list of tuples]) devuelve un iterator lugar de una list (como es el caso en Python 2.7). El libro no lo explicó más, lo que me dejó confundido. En particular, me gustaría saber: ¿Cómo son los […]

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