683 Stimmen

Was ist die meisten "Python" Weg, um über eine Liste in Chunks iterieren?

Ich habe ein Python-Skript, das als Eingabe eine Liste von ganzen Zahlen, die ich brauche, um mit vier ganzen Zahlen zu einer Zeit zu arbeiten nimmt. Leider habe ich keine Kontrolle über die Eingabe, sonst würde ich sie als Liste von Vier-Elemente-Tupeln übergeben. Im Moment durchlaufe ich die Liste auf diese Weise:

for i in range(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]

Es sieht allerdings sehr nach "C-think" aus, was mich vermuten lässt, dass es einen pythonischeren Weg gibt, mit dieser Situation umzugehen. Die Liste wird nach der Iteration verworfen, so dass sie nicht erhalten bleiben muss. Vielleicht wäre etwas wie dies besser?

while ints:
    foo += ints[0] * ints[1] + ints[2] * ints[3]
    ints[0:4] = []

Es fühlt sich aber immer noch nicht ganz richtig an :-/

Verwandte Frage: Wie teilt man in Python eine Liste in gleichgroße Teile auf?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X