logo

Indlejrede Tuples i Python

En indlejret tupel er en Python-tupel, der er blevet placeret inde i en anden tupel. Lad os tage et kig på følgende 8-element tupel.

binær søgepython
 tuple = (12, 23, 36, 20, 51, 40, (200, 240, 100)) 

Dette sidste element, som består af tre emner indesluttet i parentes, er kendt som en indlejret tupel, da den er indeholdt i en anden tupel. Navnet på hovedtuppelen med indeksværdien, tuple[indeks], kan bruges til at få den indlejrede tupel, og vi kan få adgang til hvert element i den indlejrede tupel ved at bruge tuple[indeks-1][indeks-2].

Eksempel på en indlejret tuple

Kode

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

Nogle operationer af indlejrede tuples

Vi vil se to nødvendige operationer af indlejrede tupler.

Sammenkædning af tuples til indlejrede tuples

Når du har at gøre med tupler, er det lejlighedsvis nødvendigt at omdanne separate poster til en indlejret gruppe, mens du holder dem som uafhængige elementer. Tuples tilsættes ofte ved at tilføje indholdet, hvilket flader den resulterende beholder ud, hvilket typisk er uønsket. Lad os tale om nogle tilgange til at løse dette problem.

Brug af + operatoren og ',' under initialisering

I denne teknik tilføjer vi tuplemedlemmer, som vi gør, men når vi initialiserer tuples, tilføjer vi et komma efter hver tupel for at forhindre udfladning under tilføjelsen.

Kode

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

Brug af ','-operatøren

Denne opgave kan udføres ved at anvende operatoren ',' under sammenkædning. Det kan udføre sikker sammenkædning.

Kode

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

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

Sortering af indlejrede tuples

Vi kan bruge sorted() metoden til at sortere en given tuple. Som standard sorterer denne metode tuple i stigende rækkefølge. For eksempel vil print(sorteret(medarbejder)) arrangere tuple 'medarbejder' i henhold til identifikationsnummeret, der vises som det 0. medlem af alle de indlejrede tuples. Vi kan bruge en lambda-funktion til at sortere vores tuple afhængigt af de andre elementer i den indlejrede tuple, såsom medarbejdernavnet eller antallet, som er det første og det andet medlem af de indlejrede tuples: print(sorted(medarbejder, nøgle = lambda) x: x[1])).

I dette tilfælde fortæller nøglen sorted()-funktionen, i henhold til hvilke elementer vi skal sortere tuplen. lambda-udtrykket: lambda x: x[1] indebærer, at nøglen, som er index one-elementet, skal overvejes til sortering. Vi kan skrive lambda-udtrykket som lambda x: x[2] for at sortere vores tupel efter ordantallet.

java iterator til kort

Kode

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