Verschieden große Listen mit integrierten Funktionen komprimieren
Während die integrierte Zip-Funktion beim Zusammenführen zweier Listen nicht in der Lage ist, die kürzere Liste zu wiederholen Bei unterschiedlich großen Listen können Sie die Funktion itertools.cycle nutzen, um dieses Ergebnis zu erzielen.
cycle aus dem Python-Paket itertools erstellt einen Iterator, der wiederholt Elemente aus einem Iterable zurückgibt, auch nach dessen Erschöpfung. Durch die Kombination von „zip“ und „cycle“ ist es möglich, Größenunterschiede zwischen den Listen auszugleichen und sicherzustellen, dass die längere Liste bei Bedarf wiederholt wird.
Beispiel:
<code class="python">A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] # Use itertools.cycle to repeat the shorter list from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)</code>
In diesem Beispiel:
Ergebnis:
zip_list enthält die folgenden Tupel als Generatorobjekt:
[(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B'), (9, 'C')]
So funktioniert es:
itertools.cycle erstellt eine Kopie des Iterables (in diesem Fall B) und gibt es wiederholt zurück Elemente. Während zip durch A iteriert, paart es jedes Element mit dem nächsten verfügbaren Element aus dem zyklischen Iterator.
Wenn A kürzer als B ist, beginnt der Prozess von vorne am Anfang von B, sobald sein Iterator erschöpft ist. Wenn A hingegen länger ist, wechselt der B-Iterator kontinuierlich, um den Rest der zusammengeführten Liste zu füllen.
Das obige ist der detaillierte Inhalt vonWie komprimiere ich Listen unterschiedlicher Größe mit „itertools.cycle' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!