logo

Verschachtelte Tupel in Python

Ein verschachteltes Tupel ist ein Python-Tupel, das in einem anderen Tupel platziert wurde. Schauen wir uns das folgende Tupel mit 8 Elementen an.

 tuple = (12, 23, 36, 20, 51, 40, (200, 240, 100)) 

Dieses letzte Element, das aus drei in Klammern eingeschlossenen Elementen besteht, wird als verschachteltes Tupel bezeichnet, da es in einem anderen Tupel enthalten ist. Der Name des Haupttupels mit dem Indexwert, tuple[index], kann verwendet werden, um das verschachtelte Tupel zu erhalten, und wir können auf jedes Element des verschachtelten Tupels zugreifen, indem wir tuple[index-1][index-2] verwenden.

Beispiel eines verschachtelten Tupels

Code

Aussagelogik
 # Python program to create a nested tuple # Creating a nested tuple of one element only employee = ((10, 'Itika', 13000),) print(employee) # Creating a multiple-value nested tuple employee = ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) print(employee) 

Ausgabe:

 ((10, 'Itika', 13000),) ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) 

Einige Operationen verschachtelter Tupel

Wir werden zwei notwendige Operationen verschachtelter Tupel sehen.

Verketten von Tupeln zu verschachtelten Tupeln

Beim Umgang mit Tupeln ist es gelegentlich erforderlich, einzelne Datensätze in eine verschachtelte Gruppe umzuwandeln und sie gleichzeitig als unabhängige Elemente beizubehalten. Tupel werden häufig durch Hinzufügen des Inhalts hinzugefügt, wodurch der resultierende Container abgeflacht wird, was normalerweise unerwünscht ist. Lassen Sie uns über einige Ansätze zur Lösung dieses Problems sprechen.

Was ist eine Schnittstelle?

Verwendung des +-Operators und „,“ während der Initialisierung

Bei dieser Technik fügen wir auf die gleiche Weise Tupelmitglieder hinzu, aber beim Initialisieren von Tupeln hängen wir nach jedem Tupel ein Komma an, um eine Abflachung während des Hinzufügens zu verhindern.

Code

 # Python program to concatenate tuples to make a nested tuple # initializing the tuples tup1 = (5, 4), tup2 = (1, 6), # printing the original tuples print('Tuple 1 : ' + str(tup1)) print('Tuple 2 : ' + str(tup2)) # Concatenating the two tuples to a nested tuple using the + operator nested = tup1 + tup2 # printing the result print('The nested tuple : ' + str(nested)) 

Ausgabe:

 Tuple 1 : ((5, 4),) Tuple 2 : ((1, 6),) The nested tuple : ((5, 4), (1, 6)) 

Verwendung des Operators „,“.

Diese Aufgabe kann durch Anwenden des Operators „,“ während der Verkettung ausgeführt werden. Es kann eine sichere Verkettung durchführen.

Code

Applet
 # Python program to concatenate tuples to make a nested tuple # initializing the tuples tup1 = (5, 4) tup2 = (1, 6) # printing the original tuples print('Tuple 1 : ' + str(tup1)) print('Tuple 2 : ' + str(tup2)) # Concatenating the tuples by using the ', 'operator after tuples nested = ((tup1, ) + (tup2, )) # printing result print('The nested tuple ' + str(nested)) 

Ausgabe:

 Tuple 1 : (5, 4) Tuple 2 : (1, 6) The nested tuple ((5, 4), (1, 6)) 

Sortieren verschachtelter Tupel

Wir können die Methode sorted() verwenden, um ein bestimmtes Tupel zu sortieren. Standardmäßig sortiert diese Methode das Tupel in aufsteigender Reihenfolge. Beispielsweise ordnet print(sorted(employee)) das Tupel „employee“ entsprechend der Identifikationsnummer an, die als 0. Mitglied aller verschachtelten Tupel erscheint. Wir können eine Lambda-Funktion verwenden, um unser Tupel abhängig von den anderen Elementen des verschachtelten Tupels zu sortieren, wie dem Namen des Mitarbeiters oder der Anzahl, die das erste und zweite Mitglied der verschachtelten Tupel ist: print(sorted(employee, key = lambda x: x[1])).

Konvertieren einer Zeichenfolge in ein Datum

In diesem Fall teilt der Schlüssel der Funktion sorted() mit, nach welchen Elementen wir das Tupel sortieren sollen. Der Lambda-Ausdruck: lambda x: x[1] impliziert, dass der Schlüssel, der das Index-Eins-Element ist, für die Sortierung berücksichtigt werden sollte. Wir können den Lambda-Ausdruck als Lambda x: x[2] schreiben, um unser Tupel nach der Wortanzahl zu sortieren.

Code

 # Python program to sort the nested tuple using the sorted() function # Creating a nested tuple employee = ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395)) # Sorting the tuple by default on the id print(sorted(employee)) # Sorting the tuple on id in reverse order print(sorted(employee, reverse = True)) # Sorting the tuple on name using lambda function print(sorted(employee, key = lambda x: x[1])) # Sorting the tuple on the name in reverse order print(sorted(employee, key = lambda x: x[1], reverse = True)) # Sorting the tuple on the word count print(sorted(employee, key = lambda x: x[2])) # Sorting the tuple on the word count in reverse print(sorted(employee, key = lambda x: x[2], reverse = True)) 

Ausgabe:

 [(10, 'Itika', 13000), (15, 'Naill', 20001), (24, 'Harry', 15294), (40, 'Peter', 16395)] [(40, 'Peter', 16395), (24, 'Harry', 15294), (15, 'Naill', 20001), (10, 'Itika', 13000)] [(24, 'Harry', 15294), (10, 'Itika', 13000), (15, 'Naill', 20001), (40, 'Peter', 16395)] [(40, 'Peter', 16395), (15, 'Naill', 20001), (10, 'Itika', 13000), (24, 'Harry', 15294)] [(10, 'Itika', 13000), (24, 'Harry', 15294), (40, 'Peter', 16395), (15, 'Naill', 20001)] [(15, 'Naill', 20001), (40, 'Peter', 16395), (24, 'Harry', 15294), (10, 'Itika', 13000)]