Le problème, c'est facile, je tiens à répéter sur chaque élément de la liste, et la prochaine dans les paires (habillage de la dernière avec la première).
J'ai pensé à deux unpythonic façons de le faire:
def pairs(lst):
n = len(lst)
for i in range(n):
yield lst[i],lst[(i+1)%n]
et:
def pairs(lst):
return zip(lst,lst[1:]+[lst[0]])
résultat attendu:
>>> for i in pairs(range(10)):
print i
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)
(9, 0)
>>>
toutes les suggestions sur un plus pythonic façon de faire cela? peut-être il y a une fonction prédéfinie là-bas, je n'ai pas entendu parler?
aussi d'une manière plus générale n fois (avec des triolets, des quatuors, etc. au lieu de paires) version pourrait être intéressant.