itertools.product: una pluralidad de requisitos similares iterables producto cartesiano.
Se utiliza en la forma de:
itertools.product (* iterables, repita = 1),
producto (X, repita = 3) es equivalente al producto (X, X, X).
1. El uso directo: generar tuplas, a continuación, una síntesis de la lista
Importar el itertools AA = El itertools.product ([ ' Tíbet ' , ' cae ' , ' agua ' ], [ ' Luna ' , ' estrella ' ]) BB = Lista (AA) # fin generada producto cartesiano, el valor predeterminado es la REPETICIÓN 1 Imprimir (bb)
2. Suponiendo que proporcionan: Repetición = 3
= Lista random_list (El itertools.product ([ ' Tíbet ' , ' cae ' , ' agua ' ], [ ' luna ' , ' estrella ' ], = REPEAT. 3 )) Imprimir (random_list) # Esta longitud de la lista 216
¿Por qué es 216?
En primer lugar, no se proporciona los parámetros de repetición, el valor predeterminado es 1, la generación de la lista de una longitud de 6 - que puede ser representado por permutaciones matemáticas y combinaciones, desde el primer parámetro [ "Tibet '' cae, 'agua'] recupera un valor, hay tres posibles; el segundo argumento [ 'luna', 'Star'] recupera un valor, hay dos posibilidades, de modo que 2 * 3 = 6 tipos de resultados.
Entonces, cuando el conjunto de repetición = 3 Cuando ese es el = 1 resultados (por defecto) de repetición después de repetidas dos veces (es decir, un total de de los últimos tres conjuntos de resultados como una primera capa) más permutaciones y combinaciones , de la primera los resultados (seis tipos resultado) puede tomar uno de los seis tipos de elementos, la misma razón, un elemento tomado de la segunda y tercera repetición podría tener seis tipos de resultados, por lo que tienen una combinación de 6 * 6 * 6 = 216 especies.
Por supuesto, también ser sintetizado por primera vez y después una tupla que consiste en la lista.
3. para que pueda entender los resultados de abajo son 27 tipos de ella
List = random_list (El itertools.product ([ ' Tíbet ' , ' cae ' , ' agua ' ], = REPETIR. 3 )) Imprimir (random_list)
Debido a que el resultado de la primera capa 3 es posible; hacer esto tres veces , en la formación de tres conjuntos como resultado de (la primera capa tienen cada uno tres resultados posibles ), entonces las permutaciones es de 3 * 3 * 3 = 27 tipos de resultados.
4. Si el tomado al azar de los elementos de la lista no se repetirá varias palabras ( la lista original de los elementos no se repite ), método random.sample disponible.
Importación Random random.seed ( . 1) # Establecer semilla aleatoria, el mismo resultado se puede utilizar para detectar si el número aleatorio obtienen de acuerdo n = 2 AA = random.sample (random_list, n) # lista aleatoria de n elementos Imprimir (AA )
Es decir, a partir de los resultados anteriores, 27 tipos, dos tipos de retirado al azar, para dar:
5. Este método puede ser usado para coordinar la generación aleatoria, generando otro coordenadas aleatorias Método: https://www.cnblogs.com/qi-yuan-008/p/12564710.html
Lista = random_list (El itertools.product (Rango (l, 4), Cadena de (1,2 ))) Imprimir (random_list) n = 2 AA = random.sample (random_list, n) # lista aleatoria de n elementos Imprimir ( aa)
referencia: