Je coupe une liste d'objets dans une boucle, mais je ne peux pas sembler faire en sorte que la tranchée se déplace autour des extrémités de cette liste, même avec l'indexation de modulo: impressions: P> > [0, 1]
[1, 2]
[2, 3]
[3, 0]
3 Réponses :
Pour créer une "vraie" paire circulaire de chiffres, vous devez incorporer une partie Il s'agit d'un itérateur sans fin qui permettra de générer les types de paires de chiffres souhaitées. p> vous Peut maintenant prendre une petite tranche de celui-ci: p> itertools code>
: cycle (Nums) code> répétera sans cesse votre liste de chiffres,
islice (..., 1, aucun) code> saute le premier élément de celui-ci, donc vous avez essentiellement
[0, 1 , 2, ...] code> et
[1, 2, 3, ...] code>, quel
izip code> combine. P>
Merci. Jusqu'à présent, il s'agit de la seule réponse en résolvant correctement la pièce de tranchage.
ou vous pouvez faire:
[0, 1] [1, 2] [2, 3] [3, 0]
ou essayez d'utiliser:
N = 4 nums = xrange(N) for i in xrange(N): print (nums[i:(i+2)%(i+N)] + [0] * 2)[:2]
La seule notation de tranches qui retournerait
[3, 0] code> à partir de cette liste nécessite l'argument de l'étape:
nums [3 :: - 3] code> ...