in Python, die zip () -Funktion kombiniert Elemente aus mehreren Ierables in eine einzelne iterable Tupel. Bei Verwendung mit dem Syntax -Zip ( [iter (s)] n) bietet es eine bequeme Möglichkeit, eine Liste in Teile gleicher Größe aufzuteilen.
wie es funktioniert:
der Ausdruck [iter (s)] n erstellt eine Liste, die n Kopien des Iterators über die Liste s enthält. Jede Kopie des Iterators beginnt am Anfang der Liste. Die *args packen die Liste in Argumente für ZIP () aus, was dazu führt, dass n iterables an die Funktion übergeben wird. (
[iter (s)]n) mit ausführlicher Code: def verbose_chunk (s, n): "" "Gibt eine Liste von Stücken gleicher Größe aus einer Liste zurück." "" " Stücke = [] für i in Reichweite (n): Chunk = [] für j in Reichweite (Len (s) // n): Chunk.Append (Next (iter (s))) Chunks.Append (Tuple (Chunk)) Return Chunks
Dieser Code iteriert zuerst über die gewünschte Anzahl von Brocken. Für jedes Stück verwendet es eine verschachtelte Schleife, um die Elemente in der Liste zu iterieren und sie zum Chunk hinzuzufügen. Der Stück wird dann in ein Tupel konvertiert und zur Liste der Stücke hinzugefügt. , 7,8,9] n = 3 print (list (ZIP (*[Iter (s)]*n)) # [(1,2,3), (4,5,6), (7,8,9)] print (verbose_chunk (s, n)) # [(1,2,3), (4,5,6), (7,8,9)] Beide Ansätze ergeben das gleiche Ergebnis mit dem, mit dem Concise Zip (
[iter (s)]def verbose_chunk(s, n): """Returns a list of chunks of equal size from a list.""" chunks = [] for i in range(n): chunk = [] for j in range(len(s) // n): chunk.append(next(iter(s))) chunks.append(tuple(chunk)) return chunks
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3