Articles of Itertools

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 ), […]

Cuando `starmap` podría preferirse a` List Comprehension`

Al responder a la pregunta Cálculo burdo de las diferencias entre un conjunto creciente de números, ¿existe una forma más bella? , Se me ocurrieron dos soluciones, una con List Comprehension y otra usando itertools.starmap . Para mí, la list comprehension Sintaxis se ve más lúcida, legible, menos verbosa y más pythonica. Pero aún como […]

grupo de la lista de python por primer carácter

list1=[‘hello’,’hope’,’hate’,’hack’,’bit’,’basket’,’code’,’come’,’chess’] Lo que necesito es: list2=[[‘hello’,’hope’,’hate’,’hack’],[‘bit’,’basket’],[‘code’,’come’,’chess’]] Si el primer carácter es el mismo y es el mismo grupo, entonces sublístelo. ¿Como puedo resolver esto?

sumndo todas las combinaciones posibles de un número arbitrario de arreglos y aplicando límites

Estoy tratando de generar una matriz de todas las combinaciones de un número arbitrario de matrices. Desde la matriz generada, me gustaría agregar una restricción de que la sum de los números debe estar entre dos límites (diga ‘inferior’ y ‘superior’) Un método para hacer esto es usar cartersiano , sumr los elementos y seleccionar […]

Combinaciones de Itertools Sin repeticiones: donde rgb es equivalente a rbg, etc.

Estoy tratando de usar itertools.combinations para devolver combinaciones únicas. He buscado varias preguntas similares pero no he podido encontrar una respuesta. Un ejemplo: >>> import itertools >>> e = [‘r’,’g’,’b’,’g’] >>> list(itertools.combinations(e,3)) [(‘r’, ‘g’, ‘b’), (‘r’, ‘g’, ‘g’), (‘r’, ‘b’, ‘g’), (‘g’, ‘b’, ‘g’)] Para mis propósitos, (r, g, b) es idéntico a (r, b, […]

Falta una secuencia al usar itertools combonations_with_replacement

from itertools import combinations_with_replacement x = ‘opo’ v = combinations_with_replacement(x, len(x)) ans = [”.join(map(str, x)) for x in v] print(” “.join(set(ans))) No estoy seguro de por qué me estoy perdiendo la secuencia pop aquí. ¿Por qué el pop no se muestra pero ppo y opp ? salida esperada opp ppp poo ppo ooo opo oop […]

Explicación de la función de combinación de los módulos de python.

A menudo he usado el módulo itertools en Python, pero se siente como un engaño si no conozco la lógica detrás de él. Aquí está mi código para encontrar combinaciones de cuerdas cuando el orden no es importante. def combinations(iterable, r): # combinations(‘ABCD’, 2) –> AB AC AD BC BD CD # combinations(range(4), 3) –> […]

Encuentre el índice de una combinación dada (de números naturales) entre aquellos devueltos por el módulo Python `itertools`

Dada una combinación de k de los primeros n números naturales, por alguna razón necesito encontrar la posición de tal combinación entre las que devuelve itertools.combination(range(1,n),k) (la razón es que de esta manera puedo use una list lugar de un dict para acceder a los valores asociados a cada combinación, conociendo la combinación). Como itertools […]

Python – consigue todas las combinaciones de una lista

Sé que puedo usar itertools.permutation para obtener toda la permutación del tamaño r. Pero, para itertools.permutation([1,2,3,4],3) devolverá (1,2,3) , así como (1,3,2) . Quiero filtrar esas repeticiones (es decir obtener combinaciones) ¿Hay una forma sencilla de obtener todas las permutaciones (de todas las longitudes)? ¿Cómo puedo convertir el resultado de itertools.permutation() a una lista regular?

zip (): como una función incorporada que rellena longitudes desiguales desde la izquierda con el valor Ninguno

¿Existe una función incorporada que funcione como zip (), pero llena los resultados de modo que la longitud de la lista resultante sea la longitud de la entrada más larga y complete la lista desde la izquierda con, por ejemplo, None ? Ya hay una respuesta usando zip_longest del módulo itertools y la pregunta correspondiente […]