Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Listen ungleicher Länge durch Wiederholen der kürzeren komprimieren?
Verschieden große Listen durch Wiederholen der kürzeren komprimieren
Beim Versuch, zwei Listen mit ungleicher Länge zu komprimieren, stürzt die integrierte Zip-Funktion ab kurz, indem die kürzere Liste nicht wiederholt wird, damit sie mit der größeren übereinstimmt. Um dies zu überwinden, sind alternative Ansätze erforderlich.
Lösung mit itertools.cycle
Die Funktion itertools.cycle bietet die Möglichkeit, endlos über ein Iterable zu iterieren. Diese Funktion kann genutzt werden, um die kürzere Liste auf unbestimmte Zeit zu wiederholen und sie gleichzeitig mit der längeren Liste zu komprimieren.
Implementierung:
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)</code>
In dieser Lösung verwenden wir eine Bedingung Anweisung, um zu bestimmen, welche Liste wiederholt werden soll. Wenn A länger als B ist, verwenden wir itertools.cycle, um B zu wiederholen, und wenn B länger als A ist, wiederholen wir A.
Die resultierende zip_list enthält Tupel, die Elemente von A und B paaren, wobei B ist Wird nach Bedarf wiederholt, um der Länge von A zu entsprechen. Dieser Ansatz stellt sicher, dass alle Elemente aus beiden Listen gepaart werden, wobei die kürzere Liste nach Bedarf wiederholt wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Listen ungleicher Länge durch Wiederholen der kürzeren komprimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!