Articles of Itertools

Numpy equivalente de itertools.product

Sé sobre itertools.product para itertools.product en una lista de varias dimensiones de palabras clave. Por ejemplo si tengo esto: categories = [ [ ‘A’, ‘B’, ‘C’, ‘D’], [ ‘E’, ‘F’, ‘G’, ‘H’], [ ‘I’, ‘J’, ‘K’, ‘L’] ] y lo uso itertools.product() sobre él, tengo algo como: >>> [ x for x in itertools.product(*categories) ] […]

Rendimiento de los recursos de la biblioteca en comparación con el código python

Como respuesta a mi pregunta Encuentra la posición basada en 1 en la que dos listas son las mismas , obtuve la sugerencia de usar las herramientas de la biblioteca C para acelerar las cosas. Para verificar codifiqué la siguiente prueba usando cProfile: from itertools import takewhile, izip def match_iter(self, other): return sum(1 for x […]

Estructura de bucle nested equivalente con Itertools

La syntax de succint de Python a través de sus baterías permite que la línea de código verbosa se exprese en una sola línea legible. Considera los siguientes ejemplos ====================================================| for a in range(3): | for b in range(3): | for c in range(3): | print (a,b,c), | – – – – – – – […]

Producto cartesiano de grandes iteradores (itertools).

De una pregunta anterior aprendí algo interesante. Si el producto itertools.product de Python se alimenta de una serie de iteradores, estos iteradores se convertirán en tuplas antes de que comience el producto cartesiano. Las preguntas relacionadas miran el código fuente de itertools.product para concluir que, si bien no hay resultados intermedios almacenados en la memoria, […]

Iterando sobre múltiples índices con i> j (> k) de forma pythonica

Necesito iterar sobre una tupla de índices. todos los índices deben estar en el rango [0, N) con la condición i > j . El ejemplo de juguete que presento aquí trata solo con dos índices; Necesitaré extender eso a tres (con i > j > k ) o más. La versión básica es esta: […]

Todas las formas posibles de intercalar dos cadenas

Estoy tratando de generar todas las formas posibles de intercalar dos cadenas arbitrarias en Python. Por ejemplo: si las dos cadenas son ‘ab’ y ‘cd’ , la salida que deseo obtener es: [‘abcd’, ‘acbd’, ‘acdb’, ‘cabd’, ‘cadb’, ‘cdab’] Ver a es siempre antes de b (y c antes de d ). Estoy luchando para encontrar […]

¿Para qué se utiliza itertools.groupby ()?

Mientras leía la documentación de python encontré la función itertools.groupby() . No fue muy sencillo, así que decidí buscar información aquí sobre stackoverflow. Encontré algo en ¿Cómo uso itertools.groupby () de Python? . Parece que hay poca información al respecto aquí y en la documentación, así que decidí publicar mis observaciones para comentarios. Gracias

itertools: producto cartesiano de permutaciones.

Usando pythons itertools , me gustaría crear un iterador sobre el producto externo de todas las permutaciones de un grupo de listas. Un ejemplo explícito: import itertools A = [1,2,3] B = [4,5] C = [6,7] for x in itertools.product(itertools.permutations(A),itertools.permutations(B),itertools.permutations(C)): print x Mientras esto funciona, me gustaría generalizarlo a una lista arbitraria de listas. Lo […]

Permutaciones de Python con restricciones.

Estoy usando python 3 y estoy tratando de encontrar una manera de obtener todas las permutaciones de una lista al tiempo que aplico algunas restricciones. Por ejemplo, tengo una lista L=[1, 2, 3, 4, 5, 6, 7] Quiero encontrar todas las permutaciones. Sin embargo, mis restricciones son: 1 siempre debe venir antes de 2. 3 […]

implementando argmax en Python

¿Cómo se debe implementar argmax en Python? Debe ser lo más eficiente posible, por lo que debe funcionar con iterables. Tres formas en que se podría implementar: dado un iterable de pares devuelve la clave correspondiente al mayor valor dado un iterable de valores devuelve el índice del mayor valor dado un iterable de teclas […]