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á […]
Estoy luchando para entender cómo funciona el siguiente código. Es de http://docs.python.org/library/itertools.html#itertools.izip_longest , y es el equivalente en python puro del izip_longest iterator. Estoy especialmente desconcertado por la función centinela, ¿cómo funciona? def izip_longest(*args, **kwds): # izip_longest(‘ABCD’, ‘xy’, fillvalue=’-‘) –> Ax By C- D- fillvalue = kwds.get(‘fillvalue’) def sentinel(counter = ([fillvalue]*(len(args)-1)).pop): yield counter() # yields […]
Tengo un df como asi: Count 1 0 1 1 0 0 1 1 1 0 y quiero devolver un 1 en una nueva columna si hay dos o más ocurrencias consecutivas de 1 en Count y un 0 si no lo hay. Por lo tanto, en la nueva columna, cada fila obtendrá un 1 […]
Tengo un archivo de texto relativamente grande (1 GB) que quiero reducir en tamaño sumndo las categorías: Geography AgeGroup Gender Race Count County1 1 M 1 12 County1 2 M 1 3 County1 2 M 2 0 A: Geography Count County1 15 County2 23 Esto sería una cuestión simple si todo el archivo pudiera caber […]
Dada una cadena, quiero generar todas las combinaciones posibles. En otras palabras, todas las formas posibles de poner una coma en algún lugar de la cadena. Por ejemplo: input: [“abcd”] output: [“abcd”] [“abc”,”d”] [“ab”,”cd”] [“ab”,”c”,”d”] [“a”,”bc”,”d”] [“a”,”b”,”cd”] [“a”,”bcd”] [“a”,”b”,”c”,”d”] Estoy un poco atascado en cómo generar todas las listas posibles. Las combinaciones solo me darán […]
Tengo esto: shape = (2, 4) # arbitrary, could be 3 dimensions such as (3, 5, 7), etc… for i in itertools.product(*(range(x) for x in shape)): print(i) # output: (0, 0) (0, 1) (0, 2) (0, 3) (1, 0) (1, 1) (1, 2) (1, 3) Hasta ahora, bien, itertools.product avanza el elemento más a la […]
Tengo esta lista como ejemplo: [(148, Decimal(‘3.0’)), (325, Decimal(‘3.0’)), (148, Decimal(‘2.0’)), (183, Decimal(‘1.0’)), (308, Decimal(‘1.0’)), (530, Decimal(‘1.0’)), (594, Decimal(‘1.0’)), (686, Decimal(‘1.0’)), (756, Decimal(‘1.0’)), (806, Decimal(‘1.0’))] Ahora quiero agrupar por el ID, así que itemgetter(0) : import operator, itertools from decimal import * test=[(148, Decimal(‘3.0’)), (325, Decimal(‘3.0’)), (148, Decimal(‘2.0’)), (183, Decimal(‘1.0’)), (308, Decimal(‘1.0’)), (530, Decimal(‘1.0’)), (594, […]
Estoy intentando usar la función itertools.product para hacer que un segmento de mi código (en un simulador de patrón isotópico) sea más fácil de leer y, con suerte, más rápido (la documentación indica que no se crean resultados intermedios), sin embargo, he probado ambas versiones de el código entre sí utiliza la biblioteca cProfiling y […]
La sección de itertools documentos de itertools comienza con este texto: Las herramientas extendidas ofrecen el mismo alto rendimiento que el conjunto de herramientas subyacente. El rendimiento superior de la memoria se mantiene al procesar los elementos uno a la vez en lugar de llevar todo el iterable a la memoria de una vez. El […]
Este código: from itertools import groupby, count L = [38, 98, 110, 111, 112, 120, 121, 898] groups = groupby(L, key=lambda item, c=count():item-next(c)) tmp = [list(g) for k, g in groups] Toma [38, 98, 110, 111, 112, 120, 121, 898] , lo agrupa por números consecutivos y los combina con esta salida final: [’38’, ’98’, […]