Articles of Itertools

Python no genera salida cuando se usa pool.map_async

Estoy experimentando problemas muy extraños al trabajar con los datos dentro de mi función que me llama pool.map. Por ejemplo, el siguiente código funciona como se espera … import csv import multiprocessing import itertools from collections import deque cur_best = 0 d_sol = deque(maxlen=9) d_names = deque(maxlen=9) **import CSV Data1** def calculate(vals): #global cur_best sol […]

Toma la secuencia de valores de una lista de python

Tengo una matriz como esta, a = [3,2,5,7,4,5,6,3,8,4,5,7,8,9,5,7,8,4,9,7,6] y quiero hacer una lista de valores que sean menores que 7 (ver como sigue) b = [[3,2,5],[4,5,6,3],[4,5],[5],[4],[6]] Así que utilicé el siguiente método, >>> from itertools import takewhile >>> a = [3,2,5,7,4,5,6,3,8,4,5,7,8,9,5,7,8,4,9,7,6] >>>list(takewhile(lambda x: x < 7 , a)) [3, 2, 5] Pero solo me sale […]

Cómo muestrear eficientemente combinaciones de filas en un dataframe de pandas

Digamos que tengo un dataframe de pandas con un cierto número de columnas y filas. Lo que quiero hacer es encontrar la combinación de 5 filas que combinadas produzcan la puntuación más alta en una columna en particular dado un cierto umbral. A continuación se muestra un pequeño ejemplo de juguete para ilustrarlo mejor: A […]

¿La mejor manera de enumerar un producto cartesiano con tags en python?

Dado un diccionario que asigna variables a posibles resultados: { ‘lblA’ : [False, True], ‘lblB’ : [False, True], ‘lblC’ : [0,1,2] } Quiero enumerar todos los resultados posibles del diccionario: [ { ‘lblA’ : False , ‘lblB’ : False, ‘lblC’ : 0 }, { ‘lblA’ : True , ‘lblB’ : False, ‘lblC’ : 0 }, […]

Generador que deja un marcador de posición al principio y al final del iterador de entrada intacto

Tomemos una lista como ejemplo: a = [255, 255, 1, 255, 255, 255, 1, 2, 255, 255, 2, 255, 255, 3, 255, 3, 255, 255, 255] 255 es un valor especial en ello. Es un marcador de posición. He hecho un generador que reemplaza algunos de los marcadores de posición dentro de la lista. Funciona […]

Manera pythonica de copiar un objeto iterable.

Para un proyecto pequeño en el que estoy trabajando necesito pasar por una lista. Para cada elemento de este ciclo tengo que comenzar otro ciclo a través de la misma lista, con el elemento anterior como primer elemento del nuevo ciclo. Por ejemplo, me gustaría poder producir algo como esto: 1, 2, 3, 4, 1, […]

¿Cómo encontrar el producto máximo de dos elementos en una lista?

Estaba probando un problema en el concurso de piratas informáticos por diversión, y surgió esta pregunta. Usé itertools para esto, aquí está el código: import itertools l = [] for _ in range(int(input())): l.append(int(input())) max = l[0] * l[len(l)-1] for a,b in itertools.combinations(l,2): if max < (a*b): max = (a*b) print(max) ¿Hay alguna otra manera […]

Python itertools.combinations: cómo obtener los índices de los números combinados

El resultado creado por itertools.combinations () de Python es la combinación de números. Por ejemplo: a = [7, 5, 5, 4] b = list(itertools.combinations(a, 2)) # b = [(7, 5), (7, 5), (7, 4), (5, 5), (5, 4), (5, 4)] Pero también me gustaría obtener los índices de las combinaciones como: index = [(0, 1), […]

itertools.accumulate () versus functools.reduce ()

En Python 3.3, itertools.accumulate() , que normalmente aplica repetidamente una operación de adición al iterable suministrado, ahora puede tomar un argumento de función como parámetro; esto significa que ahora se superpone con functools.reduce() . Con una mirada superficial, las principales diferencias entre los dos ahora parecen ser: accumulate() defecto a la sum, pero no le […]

Comportamiento inesperado de itertools.groupby

Este es el comportamiento observado: In [4]: x = itertools.groupby(range(10), lambda x: True) In [5]: y = next(x) In [6]: next(x) ————————————————————————— StopIteration Traceback (most recent call last) in () —-> 1 next(x) StopIteration: In [7]: y Out[7]: (True, ) In [8]: list(y[1]) Out[8]: [9] La salida esperada de la list(y[1]) es [0,1,2,3,4,5,6,7,8,9] ¿Que está […]