Heim >Backend-Entwicklung >Python-Tutorial >Wie komprimiere ich Listen ungleicher Länge mit sich wiederholenden Werten in Python?

Wie komprimiere ich Listen ungleicher Länge mit sich wiederholenden Werten in Python?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-27 04:24:02648Durchsuche

How to Zip Lists of Unequal Lengths with Repeating Values in Python?

So komprimieren Sie Listen unterschiedlicher Größe mit sich wiederholenden Werten

Beim Umgang mit Listen ungleicher Länge hilft die integrierte Funktion zip() kann Sie überraschen. Die ursprüngliche Frage sucht nach einer Methode, um die Listen A und B zu komprimieren, auch wenn B kürzer ist, und ihre Werte nach Bedarf zu wiederholen.

Während der bereitgestellte Code mithilfe einer Schleife dies erreichen kann, ist mit itertools eine präzisere Lösung verfügbar .Zyklus. Diese Funktion gibt einen Iterator zurück, der ein bereitgestelltes Iterable durchläuft und es auf unbestimmte Zeit wiederholt.

Lösung mit itertools.cycle:

from itertools import cycle

A = [1,2,3,4,5,6,7,8,9]
B = ["A","B","C"]

zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)

In diesem Fall, wenn A ist länger als B ist, paart die zip_list die Werte von A mit den wiederholten Werten von B und stellt so sicher, dass alle Elemente enthalten sind. Wenn B länger als A ist, wird der Prozess umgekehrt.

Die Funktion itertools.cycle bietet eine praktische Möglichkeit, diese wiederholte Paarung zu erreichen, was sie zu einer effizienten Lösung für die Handhabung von Listen unterschiedlicher Größe in Python macht.

Das obige ist der detaillierte Inhalt vonWie komprimiere ich Listen ungleicher Länge mit sich wiederholenden Werten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn