Où puis-je trouver le code source pour itertools.les combinaisons() la fonction
J'essaie de trouver une façon d'écrire une fonction de combinaison. Où puis-je le trouver?
Vous devez vous connecter pour publier un commentaire.
J'essaie de trouver une façon d'écrire une fonction de combinaison. Où puis-je le trouver?
Vous devez vous connecter pour publier un commentaire.
Voir dans la documentation de itertools.combinaisons. Il y a un code équivalent pour cette fonction:
indices
tableau indique les éléments de la piscine, mais je n'arrive pas à comprendre comment il génère des ensembles d'indices qui ne comprennent pas que se répète.indices
toujours triés (plus précisémentindices[i] < indices[i+1]
qui ne permet pas de répétitions) et le plus à droite dimensions de la mise à jour plus rapide. Pour obtenir le prochain tuple, la boucle for suri
trouve le plus à droite de la position dansindices
qui peut être incrémenté. Si aucun de cesi
est trouvé (donc pas debreak
se passe), laelse
de la clause de la boucle for est déclenchée et nous y sommes. Sinon,index[i]
est incrémenté et la boucle surj
réinitialise le plus tard indices à compter à partir de la nouvelleindex[i]
.else
après lafor
boucle peut être pensé mentalement comme un hypothétique "nobreak" mot-clé. En d'autres termes, lafor
boucle pourrait avoir sorti via le closbreak
ou par lefor
boucle de gamme ayant été consommées(StopIteration
). Il y a souvent de l'attente qu'unbreak
dans unfor
boucle est heurté à un certain point, par le biais de l'exécution, et si il n'a jamais été, à réagir différemment. Lefor else
permetelse
à exécuter dans le casbreak
est jamais.Le code source est écrit en C et peut être trouvé dans le fichier
itertoolsmodule.c
.La source la plus récente peut être téléchargée à partir de: http://www.python.org/download/
Essayez de télécharger dernière version: Python 2.7.1