Articles of Itertools

¿Por qué obtengo un MemoryError con itertools.product?

Espero que el siguiente fragmento de código me dé un iterador que produzca pares del producto cartesiano de los dos iterables de entrada: $ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type “help”, “copyright”, “credits” or “license” for more information. >>> import itertools >>> one = xrange(0, 10**9) >>> two […]

Agrupe por y agregue los valores de una lista de diccionarios en Python

Estoy tratando de escribir una función, de una manera elegante, que agrupará una lista de diccionarios y agregará (sum) los valores de las claves similares. Ejemplo: my_dataset = [ { ‘date’: datetime.date(2013, 1, 1), ‘id’: 99, ‘value1’: 10, ‘value2’: 10 }, { ‘date’: datetime.date(2013, 1, 1), ‘id’: 98, ‘value1’: 10, ‘value2’: 10 }, { ‘date’: […]

¿Cómo puedo usar python itertools.groupby () para agrupar una lista de cadenas por su primer carácter?

Tengo una lista de cadenas similares a esta lista: tags = (‘apples’, ‘apricots’, ‘oranges’, ‘pears’, ‘peaches’) ¿Cómo debo agrupar esta lista por el primer carácter de cada cadena utilizando itertools.groupby ()? ¿Cómo debo proporcionar el argumento ‘clave’ requerido por itertools.groupby ()?

¿Por qué este objeto asignado comparte el mismo espacio de memoria que el objeto original?

En Python encontré este extraño fenómeno mientras trabajaba con itertools groupby module. En python, la asignación de variables significa asignar a la nueva variable su propia memoria en lugar de un puntero a la memoria original (por lo que entiendo, si esto es incorrecto, hágamelo saber): y = 7 x = yy = 9 x […]

¿Cómo usar expandir en snakemake cuando no se desean algunas combinaciones particulares de comodines?

Supongamos que tengo los siguientes archivos, en los que quiero aplicar un poco de procesamiento automáticamente usando snakemake: test_input_C_1.txt test_input_B_2.txt test_input_A_2.txt test_input_A_1.txt El siguiente snakefile utiliza expand para determinar todo el archivo de resultados finales potenciales: rule all: input: expand(“test_output_{text}_{num}.txt”, text=[“A”, “B”, “C”], num=[1, 2]) rule make_output: input: “test_input_{text}_{num}.txt” output: “test_output_{text}_{num}.txt” shell: “”” md5sum {input} […]

La rareza de itertools.groupby en Python al darse cuenta del resultado del groupby temprano

Primero, disculpas por mi pobre descripción del problema. No puedo encontrar una mejor. Encontré que aplicar lista a un resultado de itertools.groupby destruirá el resultado. Ver codigo import itertools import operator log = ”’\ hello world hello there hi guys hi girls”’.split(‘\n’) data = [line.split() for line in log] grouped = list(itertools.groupby(data, operator.itemgetter(0))) for key, […]

¿Cómo llamar a una función (o método) incorporada desde el código C de un módulo de extensión de Python?

Lo que actualmente quiero lograr es modificar las funciones de la función del módulo itertools Pythons para ordenar el iterable pasado antes de crear combinaciones con el objective de ordenar las combinaciones devueltas. Estoy trabajando en un módulo de extensión de Python por primera vez y mi única experiencia hasta ahora fue escribir y comstackr […]

Fusionando los resultados de itertools.product?

Estoy tratando de crear una lista de números del 0-9999 usando itertools.product . Soy capaz de crear una lista a partir de 0000-9999 haciendo lo siguiente: numbers = [‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9’] itertools.product(numbers,numbers,numbers,numbers) Y aunque quiero entradas como 0001 , también me gustaría obtener 001 , 01 y 1 . ¿Cuál sería la forma más efectiva de incluir […]

Python devuelve las listas de enteros continuos de la lista

Tengo una lista de enteros, y quiero generar una lista que contenga una lista de todos los enteros continuos. #I have: full_list = [0,1,2,3,10,11,12,59] #I want: continuous_integers = [[0,1,2,3], [10,11,12], [59]] Tengo lo siguiente que funciona, pero parece ser una mala manera de hacerlo: sub_list = [] continuous_list = [] for x in full_list: if […]

Generando todas las permutaciones de pares únicos

Necesito generar todos los emparejamientos posibles, pero con la restricción de que un emparejamiento en particular solo ocurre una vez en los resultados. Así por ejemplo: import itertools for perm in itertools.permutations(range(9)): print zip(perm[::2], perm[1::2]) genera todas las permutaciones posibles de dos pares; Aquí hay un pequeño subconjunto de la salida: … [(8, 4), (7, […]