des combinaisons entre les deux listes?

Ça fait un moment et j'ai du mal à enveloppant ma tête autour d'un algorithme que je vais essayer de le faire. En gros, j'ai deux listes et que vous souhaitez obtenir toutes les combinaisons de ces deux listes.

Je ne pourrais pas l'expliquer, corriger alors, voici un exemple.

name = 'a', 'b'
number = 1, 2

la sortie serait dans ce cas:

1.  A1 B2
2.  B1 A2

La partie délicate est que je pourrais avoir plus d'éléments dans le “nom de variable” que les articles dans le “nombre” de la variable(nombre sera toujours égale ou inférieure à la variable de nom).

Je suis confus comment faire toutes les combinaisons (nested loop?) et encore plus confus sur la logique de déplacer les éléments dans le nom de la variable dans le cas où il y a plus d'éléments que le nom, ils sont dans la liste nombre de.

Je ne suis pas le meilleur programmeur mais je pense que je peux lui donner un coup si quelqu'un peut m'aider à clarifier la logique/algoriythm pour atteindre cet objectif. J'ai été coincé sur des boucles for imbriquées.

Mise à jour:

Voici la sortie avec 3 variables et 2 numéros:

name = 'a', 'b', 'c'
number = 1, 2

de sortie:

1.  A1 B2
2.  B1 A2
3.  A1 C2
4.  C1 A2
5.  B1 C2
6.  C1 B2
  • docs.python.org/library/itertools.html
  • J'ai vu, et a trouvé des exemples un peu similaire objectifs à l'aide d'itertools mais je suis prototypage en python, mais va écrire le code final dans une autre langue, donc je ne veux pas utiliser des outils qui ne sont pas bénéficier elseway.
  • Ce que vous demandez n'a pas vraiment de sens. Si la première liste contient A,B,C et le deuxième contient du 1,2, quel résultat attendez-vous? Il pourrait être fait si l'exemple que vous avez donné a 4 résultats d'une lettre et d'un numéro de chacun (A1, A2, B1, B2), ou si les deux listes devaient avoir la même taille.
  • Je suis d'accord avec interjay. Veuillez indiquer le résultat de la non-taille égale cas, sinon il n'est pas possible de fournir une solution générale.
  • Salut tout le monde, j'ai mis à jour la réponse à montrer la sortie avec 3 noms et les 2 numéros..j'ai pensé que je vous l'explique bien, ne sais pas pourquoi le downvote.
  • Comment la sortie de l'air pour name = 'a', 'b', 'c' et number = 1, 2, 3?
  • La commande est vraiment important ou est-ce suffisant pour générer toutes les "combinaisons" que voulez-vous? Aussi A1 B2 == B2 A1?
  • il devrait ressembler à l'exemple que j'avais au-dessus avec les 2 noms et 2 chiffres, mais au lieu de 4 résultats il n'y aurait plus parce qu'il y a 3 éléments dans la liste nombre de. bakuriu L'ordre n'a pas vraiment d'importance, en essayant de capturer les combinaisons.
  • Note pour les futurs gens de dup-ing questions à ceci: Il ya une bonne chance que Obtenir le produit cartésien d'une série de listes? c'est mieux en double cible (beaucoup de trucs qui doivent utiliser product est dupliqué ici, même si cette question n'est pas correctement résolu de cette façon). Dans des cas plus rares, Tous les substituts possibles des deux listes? peut-être mieux (lors de la sélection d'une valeur d'une des deux listes à chaque indice, qui est un product solution à nouveau, avec un zip prepass).

InformationsquelleAutor user1735075 | 2012-10-17