In Python sind Tupel eine der am weitesten verbreiteten Methoden, um Daten bedarfsgerecht zu speichern und zu verarbeiten. In Tupeln sind viele Vorgänge involviert, bei denen die Daten gemäß den Anforderungen der Problemstellung vorverarbeitet und transformiert werden. Die Komprimierungsoperation ist eine der gebräuchlichsten und am weitesten verbreiteten Operationen zum Komprimieren verschiedener Tupel.
In diesem Artikel besprechen wir die Komprimierung ungerader Tupel in Python, was ungleiche Tupelkomprimierung eigentlich bedeutet und verschiedene Möglichkeiten, denselben Vorgang durch Codeerklärung auszuführen. Dieser Artikel hilft den Leuten, die Kernidee hinter der Komprimierung ungerader Tupel zu verstehen und ihnen bei Bedarf dabei zu helfen, dasselbe zu tun.
Lassen Sie uns nun zunächst die Bedeutung der Komprimierung in Python und der ungleichmäßigen Tupelkomprimierung in Python diskutieren.
In Python bedeutet das Wort zip oder zipping, dass wir die Elemente verschiedener Tupel hinzufügen, es bedeutet, dass wir ein Paar Elemente verschiedener Tupel erstellen und sie in einem einzigen gemeinsamen Tupel speichern.
Wenn wir zum Beispiel zwei Tupel wie dieses haben:
T1 = (1, 2, 3)
T2 = („eins“, „zwei“, „drei“)
Wenn Sie dann eine Komprimierungsoperation für diese Tupel durchführen, erhalten Sie die folgende Ausgabe:
T_Zip = ((, „eins“), (2, „zwei“), (3, „drei“))
Das ungleiche Tupel bedeutet hier, dass die Größe oder Länge der beiden Tupel nicht gleich ist, dh die Größe eines Tupels ist kleiner oder größer als die des anderen Tupels. Der Komprimierungsvorgang ist für Tupel gleicher Größe oder Länge eine sehr einfache Aufgabe, wird jedoch sehr komplex, wenn zwei Tupel unterschiedlicher Größe oder ungleichmäßiger Größe komprimiert werden.
Es gibt jedoch Möglichkeiten, zwei ungerade Tupel zu komprimieren. Lassen Sie uns sie einzeln besprechen.
In Python verwenden wir hauptsächlich drei Methoden zum Komprimieren ungerader Tupel.
Verwenden Sie For-Schleifen und Aufzählungen
Verwenden Sie das Listenverständnis
Numpy-Bibliothek verwenden
Wir können for-Schleifen und Aufzählungsfunktionen verwenden, um ungerade Tupel zu komprimieren. Dies ist eine der einfachsten und effizientesten clientseitigen Möglichkeiten, dies zu tun.
# using for loop and enumerate # define the tuples test_tup1 = (7, 8, 4, 5) test_tup2 = (1, 5, 6) # print the input tuples print("The input tuple 1 is : " + str(test_tup1)) print("The input tuple 2 is : " + str(test_tup2)) res = [] # use for loop with enumerate for i, j in enumerate(test_tup1): res.append((j, test_tup2[i % len(test_tup2)])) # Print the final resultant tuple after zipping tuple 1 and 2 print("The output zipped tuple from tuple 1 and 2 is : " + str(res))
Wie wir im obigen Code sehen können, werden die Tupel 1 und 2 von () abgelehnt und haben nicht die gleiche Größe oder Länge.
Jetzt wird die for-Schleife mit der Aufzählung verwendet, die die Elemente tuple1 und tuple2 anhängt und die Ausgabe im Tupelformat liefert.
Die Ausgabe des folgenden Codes ist:
The input tuple 1 is : (7, 8, 4, 5) The input tuple 2 is : (1, 5, 6) The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]
Sie können auch ein Listenverständnis verwenden, um zwei ungerade Tupel zu komprimieren. Hier kann der ternäre Operator verwendet werden.
# using list comprehension # define the tuples tup1 = (7, 8, 4, 5) tup2 = (1, 5, 6) # print the input tuples print("The input tuple 1 is : " + str(tup1)) print("The input tuple 2 is : " + str(tup2)) # define if else conditions res = [(tup1[i], tup2[i % len(tup2)]) if len(tup1) > len(tup2) else (tup1[i % len(tup1)], tup2[i]) # use for loop on tuple 1 and 2 for i in range(max(len(tup1), len(tup2)))] #Print the final resultant tuple after zipping tuple 1 and 2 print(" The output zipped tuple from tuple 1 and 2 is :" + str(res))
Wie wir im obigen Code sehen können, werden zwei Tupel unterschiedlicher Größe definiert und dann die if else-Bedingung geschrieben, bei der zunächst die Länge der Tupel überprüft wird und schließlich die for-Schleife die beiden Tupel anhängt und die Ausgabe zurückgibt.
Die Ausgabe des folgenden Codes ist:
The input tuple 1 is : (7, 8, 4, 5) The input tuple 2 is : (1, 5, 6) The output zipped tuple from tuple 1 and 2 is : [(7, 1), (8, 5), (4, 6), (5, 1)]
Numpy ist eine der am häufigsten verwendeten Bibliotheken zum Durchführen von Operationen an Daten. Wenn wir hier Daten im Array-Format verwenden, können wir fast alles tun und Numpy verwenden, um die Daten in alles umzuwandeln.
#using numpy module to zip the uneven tuples # Importing the numpy module import numpy as np # define the tuples test_tup1 = (7, 8, 4, 5) test_tup2 = (1, 5, 6) # convert the tuples into array format arr1 = np.array(test_tup1) arr2 = np.array(test_tup2) # use np.tile arr2_tiled = np.tile(arr2, (len(arr1) // len(arr2) + 1))[:len(arr1)] #use column_stack on array 1 and tiled array 2 to zip the tuples res_arr = np.column_stack((arr1, arr2_tiled)) # convert the array output to the tuple res = tuple(map(tuple, res_arr)) # Print the final resultant tuple after zipping tuple 1 and 2 print("The output zipped tuple from tuple 1 and 2 is : " + str(res))
Wie wir im obigen Code sehen können, haben wir zuerst die Numpy-Bibliothek importiert und dann zwei Tupel unterschiedlicher Größe definiert.
Dann benötigt die Numpy-Bibliothek, wie oben erwähnt, Daten im Array-Format, um diese verarbeiten zu können. Daher wird das Tupel an np.array übergeben, das die Daten in das Array-Format konvertiert.
Sobald wir das Tupel als Array haben, wird np.column_stack verwendet, um die Elemente des Arrays anzuhängen und das Tupel wird komprimiert.
Anschließend konvertieren Sie das endgültige Array mithilfe der Funktion tuple() erneut in ein Tupel.
Die Ausgabe des folgenden Codes ist:
The output zipped tuple from tuple 1 and 2 is : ((7, 1), (8, 5), (4, 6), (5, 1))
In diesem Artikel haben wir den Komprimierungsvorgang von zwei ungeraden Tupeln oder zwei Tupeln unterschiedlicher Größe (Länge) besprochen. Die oben besprochenen drei verschiedenen Arten der Komprimierung ungleichmäßiger Tupel helfen dabei, den Komprimierungsvorgang zu verstehen und ihn bei Bedarf durchzuführen.
Das obige ist der detaillierte Inhalt vonSo komprimieren Sie ungerade Tupel in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!