Heim  >  Artikel  >  Backend-Entwicklung  >  So komprimieren Sie ungleich große Listen in Python: Erkunden von „itertools.cycle“ und benutzerdefinierten Schleifen

So komprimieren Sie ungleich große Listen in Python: Erkunden von „itertools.cycle“ und benutzerdefinierten Schleifen

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 00:17:02820Durchsuche

How to Zip Unevenly Sized Lists in Python: Exploring `itertools.cycle` and Custom Loops

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!

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