logo

Ugnezdene tuple v Pythonu

Ugnezdena tuple je tuple Python, ki je bila postavljena znotraj druge tuple. Oglejmo si naslednjo 8-elementno tuplo.

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

Ta zadnji element, ki je sestavljen iz treh elementov v oklepajih, je znan kot ugnezdena tulka, ker je v drugi tulki. Ime glavne tuple z vrednostjo indeksa, tuple[index], se lahko uporabi za pridobitev ugnezdene tuple, do vsake postavke ugnezdene tuple pa lahko dostopamo z uporabo tuple[index-1][index-2].

Primer ugnezdene tuple

Koda

nekaj za bfs
 # 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) 

Izhod:

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

Nekatere operacije ugnezdenih tuplev

Videli bomo dve potrebni operaciji ugnezdenih tulp.

Združevanje tupl v ugnezdene tuple

Ko imate opravka s tulpami, je občasno treba ločene zapise spremeniti v ugnezdeno skupino, hkrati pa jih ohraniti kot neodvisne elemente. Tuple se pogosto dodajajo z dodajanjem vsebine, kar splošči nastalo posodo, kar je običajno nezaželeno. Pogovorimo se o nekaterih pristopih k reševanju tega vprašanja.

kako vrniti matriko v javi

Uporaba operatorja + in ',' med inicializacijo

Pri tej tehniki dodajamo člane tulp kot mi, toda ko inicializiramo tuple, dodamo vejico za vsako tulp, da preprečimo sploščitev med seštevanjem.

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

Izhod:

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

Uporaba operatorja ','

To nalogo je mogoče izvesti z uporabo operatorja ',' med veriženjem. Lahko izvaja varno veriženje.

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

Izhod:

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

Razvrščanje ugnezdenih torkov

Za razvrščanje dane tuple lahko uporabimo metodo sorted(). Ta metoda privzeto razvrsti tuple v naraščajočem vrstnem redu. Na primer, print(sorted(employee)) bo uredil tuple 'employee' glede na identifikacijsko številko, ki je prikazana kot 0. član vseh ugnezdenih tuplev. Funkcijo lambda lahko uporabimo za razvrščanje naše tuple glede na druge elemente ugnezdene tuple, kot je ime zaposlenega ali število, ki je prvi in ​​drugi član ugnezdenih tulp: print(sorted(employee, key = lambda) x: x[1])).

prednaročilno prečkanje drevesa

V tem primeru ključ pove funkciji sorted(), glede na katere elemente naj razvrstimo tuple. Lambda izraz: lambda x: x[1] pomeni, da je treba za razvrščanje upoštevati ključ, ki je element indeksa one. Lambda izraz lahko zapišemo kot lambda x: x[2], da razvrstimo našo zbirko glede na število besed.

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

Izhod:

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