logo

Kapslade tuplar i Python

En kapslad tuppel är en Python-tuppel som har placerats inuti en annan tuppel. Låt oss ta en titt på följande tupel med 8 element.

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

Det sista elementet, som består av tre poster inom parentes, är känt som en kapslad tuppel eftersom den finns inuti en annan tupel. Namnet på huvudtuppeln med indexvärdet, tupel[index], kan användas för att få den kapslade tuppeln, och vi kan komma åt varje objekt i den kapslade tuppeln genom att använda tuple[index-1][index-2].

Exempel på en kapslad tuppel

Koda

 # 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) 

Produktion:

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

Vissa operationer av kapslade tuplar

Vi kommer att se två nödvändiga operationer av kapslade tuplar.

Sammanfoga tupler till kapslade tupler

När man har att göra med tuplar är det ibland nödvändigt att förvandla separata poster till en kapslad grupp samtidigt som de behålls som oberoende element. Tuples tillsätts ofta genom att lägga till innehållet, vilket plattar ut den resulterande behållaren, vilket vanligtvis inte är önskvärt. Låt oss prata om några metoder för att lösa detta problem.

Använd operatorn + och ',' under initiering

I den här tekniken lägger vi till tupelmedlemmar som vi gör, men när vi initierar tupler lägger vi till ett kommatecken efter varje tupel för att förhindra tillplattadhet under tillägg.

Koda

 # 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)) 

Produktion:

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

Med operatören ','

Denna uppgift kan utföras genom att använda operatorn ',' under sammankoppling. Det kan utföra säker sammanlänkning.

Koda

 # 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)) 

Produktion:

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

Sortera kapslade tuplar

Vi kan använda metoden sorted() för att sortera en given tupel. Som standard sorterar den här metoden tupeln i stigande ordning. Till exempel kommer print(sorted(employee)) att ordna tuppel 'anställd' enligt identifikationsnumret som visas som den 0:e medlemmen av alla kapslade tupler. Vi kan använda en lambda-funktion för att sortera vår tuppel beroende på de andra elementen i den kapslade tuppeln, som anställds namn eller antalet, som är den första och andra medlemmen av de kapslade tuplarna: print(sorted(employee, key = lambda) x: x[1])).

I det här fallet berättar nyckeln för sorted()-funktionen, enligt vilka element vi ska sortera tupeln. Lambdauttrycket: lambda x: x[1] innebär att nyckeln, som är index ett-elementet, bör övervägas för sortering. Vi kan skriva lambdauttrycket som lambda x: x[2] för att sortera vår tupel efter ordantalet.

Koda

 # 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)) 

Produktion:

 [(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)]