Tuple and dictionary
Sequence types və mutability haqqında, for ilə içində iterate edə bildiyimiz hər bir data tipi sequental data type sayılır. Məsələn listlər. Listlər həm də mutable data type-dır. Yəni proqram işlədiyi müddətdə içi dəyişə bilər. Tuple-lar adətən o zaman istifadə olunurlar ki, hər hansı bir listiniz və s. var onu proqram içində dəyişməsini istəmirsiz. Onu tuple() vasitəsilə tuple-a çevirirsiniz.
For ilə içində iterate edə bildiyimiz hər bir data tipi sequental data type sayılır. Məsələn, listlər. Listlər eyni zamanda mutable data type-dır. Yəni proqram işlədiyi müddətdə içi dəyişə bilər.
Proqram işlədiyi müddətdə içi dəyişə bilməyən tiplər də mövcuddur. Onlara immutable tiplər deyilir. Məsələn, tuple. Tuple-ı pythonda iki cür tanıda bilərik:
tuple_1 = (1, 2, 4, 8)
tuple_2 = 1., .5, .25, .125
print(tuple_1) # (1, 2, 4, 8)
print(tuple_2) # (1.0, 0.5, 0.25, 0.125)
Tuple-ın hər bir elementi başqa data tipinə aid ola bilər.
Tuple-ları tanımladarkən mütləq vergül işarəsindən istifadə etmək lazımdır. Tək elementi olan tuple-lar aşağıdakı formada təyin olunurlar. Nümunədən də göründüyü kimi 2-ci sətirdə vergül istifadə etmədiyim üçün 5-ci sətrin nəticəsi olaraq 9-cu sətirdə int tipi görsənib:
test_1 = (1, )
test_2 = (1)
print(type(test_1))
print(type(test_2))
'''
<class 'tuple'>
<class 'int'>
'''
Dictionary (lüğətlər)
Dictonary tipinin tuple tipindən fərqi ondadır ki, python 3.6 versiyasından etibarən, dictionary mutable tipdir. Yəni onun hansısa elementini proqramın gedişatı zamanı dəyişdirmək mümkündür. Dictionary-lər key və value-lardan ibarət olurlar. Məsələn aşağıdakı nümunəyə baxaq.
Tuple immutable (dəyişilməz) olduğu üçün aşağıdakı onu aşağıdakı kimi dəyişdirmək xəta çıxardacaq:
luget_1 = {'masin':'car', 'reng':'color', 'telefon':'telephone'}
print(luget_1)
print(luget_1.keys())
print(luget_1.values())
# lugetin key-inin silinmesi onunla bagli olan value-nun da silinmesine getirib cixarir.
del luget_1['reng']
print(luget_1)
# lugetin son elementini popitem() vasitesile silmek mumkundur.
luget_1.popitem()
print(luget_1)
# update vasitesile lugeti update etmek mumkundur
luget_1.update({'ses':'voice'})
print(luget_1)
luget_2 = luget_1.copy()
luget_2.clear()
print()
print(luget_1)
print(luget_2)
Yuxarıdakı kod parçası ekrana aşağıdakı nəticələri çap edəcəkdir.
{'masin': 'car', 'reng': 'color', 'telefon': 'telephone'}
dict_keys(['masin', 'reng', 'telefon'])
dict_values(['car', 'color', 'telephone'])
{'masin': 'car', 'telefon': 'telephone'}
{'masin': 'car'}
{'masin': 'car', 'ses': 'voice'}
{'masin': 'car', 'ses': 'voice'}
{}
my_tuple.append(123)
del my_tuple[2]
my_tuple[1] = -5
Habelə, tuple-lar üzərində +
,*
,len()
,in
, not in
əməliyyatları etmək mümkündür:
my_tuple = (1, 10, 100)
t1 = my_tuple + (1000, 10000)
t2 = my_tuple * 3
t3 = t1 + t2
print(len(t2)) # 9
print(t1) # (1, 10, 100, 1000, 10000)
print(t2) # (1, 10, 100, 1, 10, 100, 1, 10, 100)
print(t3) # (1, 10, 100, 1000, 10000, 1, 10, 100, 1, 10, 100, 1, 10, 100)
print(10 in my_tuple) # True
print(-10 not in my_tuple) # True
Dictionaries (lüğətlər)
Dəyərləri saxlaya biləcəyimiz digər bir data tipi isə lüğətlərdir. Python 3.6 versiyasından etibarən lüğətlər ordered (sequential) və mutable data tipləri sayılırlar. Lüğətlər {} fiqurlu mötərizələr vasitəsilə tanıdılır, key (açar) və value (dəyər)lərdən ibarət olurlar. Məsələn:
nümunə_1 = {'maşın':'car', 'test':'test', 'kitab':'book'} # standart dictionary tanıtımı
nümunə_2 = {} # boş dictionary bu cür tanıdılır
nümunə_3 = {'Ali':1234, 'Mammad':12345, 'Aziz':123456, 'Orxan':'test'} # dictionary içində bir neçə fərqli data tipi ola bilər
nümunə_4 = { # mürəkkkəb dictionary-ni alt-alta yazmaq daha rahatdır.
'1':{'ad':'Ali', 'soyad':'aliyev'},
'2':{'ad':'Mammad','soyad':'Mammadov'}
}
# hər bir lüğətin necə çap olunduğuna baxaq
print(nümunə_1, nümunə_2, nümunə_3, nümunə_4)
# lüğətin spesifik elementini listlərdə olduğu kimi indekslər vasitəsilə olmasa da,
# key-lər vasitəsilə tapmaq olar. Məsələn:
print(nümunə_1['kitab']) # ekrana book çıxardacaq.
print(nümunə_4['1']['ad']) # ekrana Ali çıxardacaq.
print("\nKeylər: " + str(nümunə_3.keys())) #
print("Valuelar: " + str(nümunə_3.values())) #
print("İtemlər: " + str(nümunə_3.items())) #
print("\nnümunə_1 variable:")
for açarsöz in nümunə_1.keys():
print(açarsöz + '->' + nümunə_1[açarsöz])
print("\nnümunə_4 variable:")
for açarsöz,dəyər in nümunə_4.items():
for dəyər2 in dəyər.keys():
print(açarsöz, dəyər2, dəyər[dəyər2])
Yuxarıdakı kod ekrana aşağıdakı nəticəni çap edəcək:
{'maşın': 'car', 'test': 'test', 'kitab': 'book'} {} {'Ali': 1234, 'Mammad': 12345, 'Aziz': 123456, 'Orxan': 'test'} {'1': {'ad': 'Ali', 'soyad': 'aliyev'}, '2': {'ad': 'Mammad', 'soyad': 'Mammadov'}}
book
Ali
Keylər: dict_keys(['Ali', 'Mammad', 'Aziz', 'Orxan'])
Valuelar: dict_values([1234, 12345, 123456, 'test'])
İtemlər: dict_items([('Ali', 1234), ('Mammad', 12345), ('Aziz', 123456), ('Orxan', 'test')])
nümunə_1 variable:
maşın->car
test->test
kitab->book
nümunə_4 variable:
1 ad Ali
1 soyad aliyev
2 ad Mammad
2 soyad Mammadov
Başqa bir nümunəyə baxaq:
example = {'maşın':'car', 'test':'test', 'kitab':'book'}
# Lüğətin içindəki hər hansı dəyəri aşağıdakı formada dəyişmək mümkündür.
example['maşın'] = 'car2'
example['qələm'] = 'pen'
# Update metodu da həmin işə yararlıdır.
example.update({"kitab": "book2"})
example.update({"telefon": "telephone"})
print(example) # {'maşın': 'car2', 'test': 'test', 'kitab': 'book2', 'qələm': 'pen', 'telefon': 'telephone'}
# popitem vasitəsilə lüğətin son elementini silmək mümkündür
example.popitem()
print(example) # {'maşın': 'car2', 'test': 'test', 'kitab': 'book2', 'qələm': 'pen'}
# lüğətin spesifik elementini isə del açar sözü ilə silmək mümkündür
del example['maşın']
print(example) # {'test': 'test', 'kitab': 'book2', 'qələm': 'pen'}
example.clear()
# lüğətin içindəki itemləri clear() metodu vasitəsilə silmək mümkündür:
print(example) # {}
Last updated
Was this helpful?