Articles of iterador

Bucle de Python: comparación idiomática de elementos sucesivos en una lista

Necesito recorrer una lista de objetos, comparándolos así: 0 vs. 1, 1 vs. 2, 2 vs. 3, etc. (Estoy usando pysvn para extraer una lista de diffs.) Terminé justo repitiendo un índice, pero sigo preguntándome si hay alguna forma de hacerlo que sea más idiomática. Es Python; ¿No debería estar usando iteradores de alguna manera […]

Viendo la lista en Java tan elegante como en Python

En Python es bastante fácil mostrar una iterable como una lista separada por comas: >>> iterable = [“a”, “b”, “c”] >>> “, “.join(iterable) ‘a, b, c’ ¿Hay alguna forma de Java que se acerque a esta concisión? (Observe que no hay “,” al final.)

¿Iterador con memoria?

Estoy trabajando en una aplicación que utiliza una cadena de Markov. A continuación se muestra un ejemplo de este código: chain = MarkovChain(order=1) train_seq = [“”,”hello”,”this”,”is”,”a”,”beautiful”,”world”] for i, word in enum(train_seq): chain.train(previous_state=train_seq[i-1],next_state=word) Lo que busco es iterar sobre train_seq, pero mantener los últimos elementos. for states in unknown(train_seq,order=1): # states should be a list of […]

En Python, ¿cómo puedo determinar si un iterable tiene un orden de iteración estable?

En Python, ¿cómo puedo determinar si un iterable tiene un orden de iteración estable? Hay collections.Iterable Clase base abstracta itable pero no hay contraparte estable. La razón por la que pregunto es para poder evitar o advertir a los usuarios cuando pasan (por error) iterable con un orden de iteración inestable ( dict , set […]

iterando una clave en una matriz asociativa multidimensional python

Estoy creando dinámicamente una matriz asociativa bidimensional (¿diccionario?) Estoy tratando de hacer un bucle a través de sus claves, mientras mantengo uno de los índices constantes, así que, por ejemplo, todos los valores asociados a “clave” con “john” en su primer corchete: myhash[‘john’][‘smith’] = “address 1” myhash[‘john’][‘doe’] = “address 2” ¿Cómo puedo obtener todas las […]

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