2017-10-12 8 views
0

Je voudrais trouver la combinaison d'un contenu de tableau avec l'index. En outre, avec la longueur de combinaison dynamique. En ce moment, je peux combiner avec cela sans index retour:Python Itertools combinaison

print("Combination result: ") 
for L in range(1, len(splitword)+1): 
    comb = combinations(splitword, L) 
    for combine in comb: 
     print(combine) 

Comment puis-je retourner l'index trop long avec la combinaison?

Merci

Répondre

0

Utilisez combinations(range(len(splitword)), L) au lieu de trouver les indices. Ensuite, trouver les valeurs à partir de là est une indexation simple.

print("Combination result: ") 
for L in range(1, len(splitword)+1): 
    comb = itertools.combinations(range(len(splitword)), L) 
    for combination_index in comb: 
     print(combination_index, [splitword[i] for i in combination_index]) 
+0

wow, génial! merci, j'apprends votre code en ce moment, je suis débutant avec itertools, pouvez-vous m'expliquer un peu sur les choses ci-dessus? –

+0

Ce que j'ai fait n'est pas lié à '' itertools''. Plutôt que de générer des combinaisons de lettres dans votre chaîne, j'ai simplement mélangé un '' range'', c'est-à-dire les nombres de 0 à '' len (splitword) ''. Notez que cela revient à réarranger les indices, et non les valeurs elles-mêmes. – polwel