Zippen ungleichmäßig großer Listen: Erkundung alternativer Ansätze
Das inhärente Verhalten der integrierten Zip-Funktion von Python stellt eine Herausforderung dar, wenn es um Listen von Listen geht unterschiedliche Längen. Dies ist offensichtlich, wenn eine Liste kürzer als die andere ist, was zu einer ungleichen Anzahl von Elementen für die Paarung führt.
Um diese Einschränkung zu beheben, gibt es mehrere Techniken, um die gewünschte Ausgabe zu erzielen, bei der die kürzere Liste wiederholt wird Passen Sie die Länge des längeren an.
1. Verwendung der Zip-Funktion mit itertools.cycle
Diese Methode beinhaltet die Verwendung der Python-Funktion itertools.cycle, um eine Iterable zu erstellen, die Elemente der kürzeren Liste endlos durchläuft. Durch die Nutzung des Zyklus wird es möglich, die Elemente der längeren Liste mit den wiederholten Elementen der kürzeren zu paaren.
<code class="python">A = [1,2,3,4,5,6,7,8,9] B = ["A","B","C"] from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)</code>
2. Implementieren einer benutzerdefinierten For-Schleife
Ein alternativer Ansatz besteht darin, die größere Liste manuell zu durchlaufen und jedes Element mit dem entsprechenden Element aus der kürzeren Liste zu koppeln. Wenn die kürzere Liste erschöpft ist, beginnt die Iteration von vorne und wiederholt die Elemente, bis alle Elemente in der größeren Liste gepaart sind.
<code class="python">idx = 0 zip_list = [] for value in larger: zip_list.append((value,smaller[idx])) idx += 1 if idx == len(smaller): idx = 0</code>
Durch die Anwendung einer dieser Strategien können Entwickler effektiv zwei Listen komprimieren unterschiedlicher Größe, wobei sichergestellt wird, dass die kürzere Liste nach Bedarf wiederholt wird, um der Länge der längeren Liste zu entsprechen. Dies eröffnet Möglichkeiten für verschiedene Datenverarbeitungs- und Manipulationsaufgaben, bei denen mit Listen ungleicher Länge gearbeitet wird.
Das obige ist der detaillierte Inhalt vonSo komprimieren Sie ungleich große Listen in Python: Erkunden von „itertools.cycle' und benutzerdefinierten Schleifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!