Segmentiere eine Liste in Python

8

Ich suche nach einer Python-eingebauten Funktion (oder Mechanismus), um eine Liste in erforderliche Segmentlängen zu segmentieren (ohne die Eingabeliste zu mutieren). Hier ist der Code, den ich bereits habe:

%Vor%     
kjfletch 02.08.2009, 12:14
quelle

3 Antworten

17

Sie können Listenverständnis verwenden:

%Vor%     
OmerGertel 02.08.2009, 12:26
quelle
4

Wie müssen Sie die Ausgabe verwenden? Wenn Sie nur darüber iterieren müssen, erstellen Sie besser ein iterables, eines, das Ihre Gruppen ergibt:

%Vor%

Anwendungsbeispiel:

%Vor%

Dies verbraucht wesentlich weniger Speicher als der Versuch, die gesamte Liste gleichzeitig im Speicher zu erstellen, wenn Sie nur das Ergebnis durchlaufen, da es immer nur eine Untergruppe gleichzeitig erstellt:

%Vor%     
Martijn Pieters 02.08.2009 12:51
quelle
2

nicht die gleiche Ausgabe, ich denke immer noch die Grouper-Funktion ist hilfreich:

%Vor%

für Python2.4 und 2.5 ohne izip_longest:

%Vor%

einige Demo-Code und Ausgabe:

%Vor%

Ausgabe: [(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, Keine, Keine)]

    
sunqiang 02.08.2009 12:38
quelle

Tags und Links