Articles of Itertools

¿Cuál es el propósito en itertools.repeat de Python?

Cada vez que puedo pensar en la clase itertools.repeat() Python, se me ocurre otra solución igualmente aceptable (posiblemente más) para lograr el mismo efecto. Por ejemplo: >>> [i for i in itertools.repeat(‘example’, 5)] [‘example’, ‘example’, ‘example’, ‘example’, ‘example’] >>> [‘example’] * 5 [‘example’, ‘example’, ‘example’, ‘example’, ‘example’] >>> list(map(str.upper, itertools.repeat(‘example’, 5))) [‘EXAMPLE’, ‘EXAMPLE’, ‘EXAMPLE’, ‘EXAMPLE’, […]

Mi IDLE no reconoce itertools.izip () como una función

>>> itertools.izip(‘ABCD’, ‘xy’) Traceback (most recent call last): File “”, line 1, in itertools.izip(‘ABCD’, ‘xy’) AttributeError: ‘module’ object has no attribute ‘izip’

Iterar a través de combinaciones de sum en Python 3

Busco una forma de encontrar todas las combinaciones de sums con elementos de una secuencia de Fibonacci con un límite dado que sea igual al mismo valor. Sé que las combinations() de itertools son nuestra mejor apuesta para resolver tales problemas, pero como soy nuevo en Python, me gusta saber cómo puedo conservar las combinaciones […]

Python itertools.product con variable número de argumentos

Estoy tratando de escribir un módulo para combinar un número variable de listas usando itertools.product. Lo más cercano que puedo conseguir es: import itertools lists = [[“item1″,”item2”],[“A”,”b”,”C”], [“etc…”]] searchterms = list(itertools.product(lists)) print searchterms Esto no funciona, porque las listas son una sola lista, por lo que solo devuelve la secuencia original. Pero no puedo averiguar […]

Amplia primera versión de itertools.chain ()

En itertools hay chain , que combina múltiples generadores en uno solo, y en esencia hace una primera iteración de profundidad sobre ellos, es decir, chain.from_iterable([‘ABC’, ‘123’]) produce A, B, C, 1 , 2, 3. Pero, no hay una primera versión de amplitud, ¿o me estoy perdiendo algo? Por supuesto, hay izip_longest , pero para […]

Cómo aplanar una lista de listas de python

He visto un par de respuestas sobre cómo aplanar las listas del formulario. [1,[1,2],[3]] print list(itertools.chain(*[1,[1,2],[3]])) pero como aplanas listas como esta: [[1],[[1,2],[3]]] print list(itertools.chain(*[[1],[[1,2],[3]]])) [1, [1, 2], [3]]

¿Evalúa itertools.product sus argumentos perezosamente?

Lo siguiente nunca imprime nada en Python 3.6 from itertools import product, count for f in product(count(), [1,2]): print(f) En su lugar, simplemente se sienta allí y quema la CPU. El problema parece ser que el product nunca devuelve un iterador si está sobre un espacio infinito porque primero evalúa el product completo. Esto es […]

Python itertools.product con un número arbitrario de conjuntos

Deseo ejecutar el siguiente código: temp = [] temp.append([1,2]) temp.append([3,4]) temp.append([5,6]) print list(itertools.product(temp[0],temp[1],temp[2])) Sin embargo, me gustaría ejecutarlo para temp con una longitud arbitraria. Es decir, algo más como: print list(itertools.product(temp)) ¿Cómo formateo la entrada correctamente para que itertools.product produzca el mismo resultado en el primer segmento de código sin saber explícitamente cuántas entradas hay […]

Itertools equivalente de bucle nested “para x en xs: para y en ys …”

Tengo un bucle nested para crear todas las combinaciones en un conjunto de verbos conjugados. El objective es obtener todas las combinaciones posibles de verbo, persona y tiempo, por ejemplo [[‘to be’, ‘first person singular’, ‘future’],[‘to be’, ‘second person singular’, ‘future’], …] . for v in verbs: for p in persons: for t in tenses: […]

zip_longest sin valor de relleno

Estoy buscando un punto intermedio entre las funciones zip de Python y zip_longest (del módulo itertools ), que agota todos los iteradores dados, pero no llena nada. Entonces, por ejemplo, debería transponer tuplas como tales: (11, 12, 13 ), (11, 21, 31, 41), (21, 22, 23, 24), –> (12, 22, 32, 42), (31, 32 ), […]