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.
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