„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Listen ungleicher Länge durch Wiederholen der kürzeren komprimieren?

Wie kann ich Listen ungleicher Länge durch Wiederholen der kürzeren komprimieren?

Veröffentlicht am 08.11.2024
Durchsuche:984

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

Zippen unterschiedlich großer Listen durch Wiederholen der kürzeren

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 Verwendung von itertools.cycle

Die Funktion itertools.cycle bietet die Möglichkeit, endlos über ein iterierbares Element 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:

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)

In dieser Lösung verwenden wir eine bedingte 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 miteinander gepaart werden, wobei die kürzere Liste nach Bedarf wiederholt wird.

Neuestes Tutorial Mehr>

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