J'ai un script Python qui prend en entrée une liste d'entiers, de qui j'ai besoin de travailler avec quatre entiers à la fois. Malheureusement, je n'ai pas le contrôle de l'entrée, ou j'avais passé dans une liste de quatre-élément n-uplets. Actuellement, je suis une itération sur elle de cette façon:
for i in xrange(0, len(ints), 4):
# dummy op for example code
foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Il ressemble beaucoup à "C-à-penser", mais, ce qui me fait soupçonner il y a de plus pythonic façon de faire face à cette situation. La liste est rejetée après une itération, de sorte qu'il n'a pas besoin d'être conservé. Peut-être quelque chose comme ce serait mieux?
while ints:
foo += ints[0] * ints[1] + ints[2] * ints[3]
ints[0:4] = []
N'est toujours pas tout à fait "sentir" le droit, si. :-/
Liés à la question: Comment vous répartissez vous une liste en morceaux de taille égale en Python?