erhalte ich den Dreh des grouper()
Rezept von itertools
:Grouper Rezept aber zurückkehren letzte „Gruppe“, auch mit unterschiedlicher Länge
def grouper(iterable, n, fillvalue=None):
"Collect data into fixed-length chunks or blocks"
# grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(*args, fillvalue=fillvalue)
Diese Version füllt die letzte Gruppe mit einem bestimmten Wert. Wenn ich fillvalue
entferne, gibt es die letzte Gruppe nicht zurück, wenn sie weniger als n
Elemente enthält. Ich habe mehrere Situationen erlebt, in denen ich die letzte Gruppe haben möchte, egal ob sie die gleiche Größe wie alle anderen Gruppen hat oder nicht. Ich möchte auch keine Auffüllung hinzufügen. Wie gehe ich dabei vor?
Sie tatsächlich vergessen, um die Werte von 'Islice zu lesen()' - versuchen 'Liste (Grouper ('ABCDEFG', 3)) 'zum Beispiel .. –
Was ist der Unterschied zwischen der Rückgabe des Iterators direkt von' islice() 'vs Wrapping es in einem Tupel oder einer Liste? –
@eugeney Da 'grouper()' ein Generator ist, weiß ich, wie man es benutzt. Ich werde wahrscheinlich etwas mehr tun, in Anlehnung an 'for x in grouper ('ABCDEFG', 3):' –