Yuvalanmış bir demet, başka bir demetin içine yerleştirilmiş bir Python demetidir. Aşağıdaki 8 elemanlı tuple'a bir göz atalım.
tuple = (12, 23, 36, 20, 51, 40, (200, 240, 100))
Parantez içine alınmış üç öğeden oluşan bu son öğe, başka bir demet içinde yer aldığından iç içe demet olarak bilinir. Ana tuple'ın indeks değeri olan adı Tuple[index], iç içe tuple'ı elde etmek için kullanılabilir ve iç içe tuple'ın her bir öğesine Tuple[index-1][index-2] kullanarak erişebiliriz.
Yuvalanmış Tuple Örneği
Kod
# 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)
Çıktı:
((10, 'Itika', 13000),) ((10, 'Itika', 13000), (24, 'Harry', 15294), (15, 'Naill', 20001), (40, 'Peter', 16395))
Nested Tuple'ların Bazı İşlemleri
İç içe geçmiş tuple'ların iki gerekli operasyonunu göreceğiz.
Demetleri Yuvalanmış Demetlere Birleştirme
Tuple'larla uğraşırken bazen ayrı kayıtları bağımsız öğeler olarak tutarken iç içe geçmiş bir gruba dönüştürmek gerekebilir. Demetler genellikle içeriklerin eklenmesiyle eklenir, bu da sonuçta ortaya çıkan kabı düzleştirir ve bu genellikle istenmeyen bir durumdur. Bu sorunu çözmeye yönelik bazı yaklaşımlardan bahsedelim.
Başlatma sırasında + operatörünü ve ',' kullanma
myflixr
Bu teknikte demet üyelerini yaptığımız gibi ekliyoruz ancak demetleri başlatırken, ekleme sırasında düzleşmeyi önlemek için her demetten sonra virgül ekliyoruz.
Kod
# 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))
Çıktı:
arayüz vs soyut sınıf
Tuple 1 : ((5, 4),) Tuple 2 : ((1, 6),) The nested tuple : ((5, 4), (1, 6))
',' Operatörünü Kullanma
Bu görev birleştirme sırasında ',' operatörü uygulanarak gerçekleştirilebilir. Güvenli birleştirme yapabilir.
Kod
# 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))
Çıktı:
Tuple 1 : (5, 4) Tuple 2 : (1, 6) The nested tuple ((5, 4), (1, 6))
İç içe Tuple'ları Sıralama
Belirli bir tuple'ı sıralamak için sorted() yöntemini kullanabiliriz. Varsayılan olarak bu yöntem, demetleri artan düzende sıralar. Örneğin, print(sorted(employee)) 'çalışan' demetini tüm iç içe geçmiş demetlerin 0'ıncı üyesi olarak görünen kimlik numarasına göre düzenleyecektir. Çalışan adı veya iç içe geçmiş demetlerin birinci ve ikinci üyesi olan sayı gibi iç içe geçmiş demetin diğer öğelerine bağlı olarak demetimizi sıralamak için bir lambda işlevi kullanabiliriz: print(sorted(employee, key = lambda) x: x[1])).
Bu durumda anahtar sorted() fonksiyonuna tuple'ı hangi öğelere göre sıralamamız gerektiğini söyler. Lambda ifadesi: lambda x: x[1], dizin bir öğesi olan anahtarın sıralama için dikkate alınması gerektiğini belirtir. Tuple'ımızı kelime sayısına göre sıralamak için lambda ifadesini lambda x:x[2] şeklinde yazabiliriz.
Kod
# 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))
Çıktı:
[(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)]