Articles of iteración de

iteración ternaria python con lista de comprensión

¿Es posible la iteración ternaria? Una versión simplista de lo que quiero decir, aunque este ejemplo en particular podría hacerse de una mejor manera: c = 0 list1 = [4, 6, 7, 3, 4, 5, 3, 4] c += 1 if 4 == i for i in list1 else 0 Un ejemplo más práctico: strList […]

Iterar una cadena de formato sobre una lista

En Lisp, puedes tener algo como esto: (setf my-stuff ‘(1 2 “Foo” 34 42 “Ni” 12 14 “Blue”)) (format t “~{~d ~r ~s~%~}” my-stuff) ¿Cuál sería la forma más pythonica de iterar sobre esa misma lista? Lo primero que viene a la mente es: mystuff = [1, 2, “Foo”, 34, 42, “Ni”, 12, 14, “Blue”] […]

Número de iteraciones grandes de Python falla

Escribí un simple progtwig de cálculo monte-carlo π en Python, usando un módulo de multiprocesamiento. Funciona bien, pero cuando paso 1E + 10 iteraciones para cada trabajador, ocurre un problema y el resultado es incorrecto. ¡No puedo entender cuál es el problema, porque todo está bien en las iteraciones 1E + 9! import sys from […]

Caminar / iterar sobre un diccionario nested de profundidad arbitraria (el diccionario representa un árbol de directorios)

Estoy casi seguro de que hay una solución simple para esto, pero he pasado horas leyendo y releyendo el mismo conjunto de resultados relacionados que no responden a mi problema. Contexto de esta pregunta (incluido para completar, pero siéntase libre de omitir esto) Esto surgió porque quiero que un usuario pueda seleccionar un grupo de […]

¿Es más rápido iterar una pequeña lista dentro de una statement any ()?

Considere la siguiente operación en el límite de iterables de baja longitud, d = (3, slice(None, None, None), slice(None, None, None)) In [215]: %timeit any([type(i) == slice for i in d]) 1000000 loops, best of 3: 695 ns per loop In [214]: %timeit any(type(i) == slice for i in d) 1000000 loops, best of 3: […]

atrapa errores dentro del generador y continúa después

Tengo un iterador que se supone que funciona durante varios días. Quiero que los errores se detecten e informen, y luego quiero que el iterador continúe. O todo el proceso puede comenzar de nuevo. Aquí está la función: def get_units(self, scraper): units = scraper.get_units() i = 0 while True: try: unit = units.next() except StopIteration: […]

¿Por qué las cadenas de python no tienen función __iter__?

¿Cómo es que podemos iterar sobre las cadenas de python cuando las cadenas no tienen una función __iter__ ? $ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type “help”, “copyright”, “credits” or “license” for more information. >>> “asdf”.__iter__ Traceback (most recent call last): File “”, line 1, in AttributeError: ‘str’ […]

itertools.islice en comparación con el segmento de la lista

He estado tratando de aplicar un algoritmo para reducir una lista de python a una más pequeña según un criterio determinado. Debido al gran volumen de la lista original, en el orden de los 100k elementos, traté de hacer un conjunto de herramientas para evitar múltiples asignaciones de memoria, por lo que se me ocurrió […]

Forma pythonica de iterar sobre la secuencia, 4 elementos a la vez

Posible duplicado: ¿Cuál es la forma más “pythonic” de iterar sobre una lista en trozos? Estoy leyendo en algunos datos PNG, que tiene 4 canales por píxel. Me gustaría iterar sobre los datos 1 píxel a la vez (es decir, cada 4 elementos = 1 píxel, rgba). red_channel = 0 while red_channel < len(raw_png_data): green_channel, […]

Obtener el objeto ‘int’ no es iterable

cat_sums[cat] += value TypeError: ‘int’ object is not iterable Mi entrada es la siguiente: defaultdict(, {‘composed’: [0], ‘elated’: [0], ‘unsure’: [0], ‘hostile’: [0], ‘tired’: [0], ‘depressed’: [0], ‘guilty’: [0], ‘confused’: [0], ‘clearheaded’: [0], ‘anxious’: [0], ‘confident’: [0], ‘agreeable’: [0], ‘energetic’: [0]}) Y esto se asigna a algo llamado catnums. accumulate_by_category(worddict, catnums, categories) def accumulate_by_category(word_values, cat_sums, […]