💡
python dərsləri
  • Python dərsləri
  • 👶PCEP
    • Proqramlaşdırma haqqında
    • Dili nə əmələ gətirir?
    • Compilation vs. interpretation
    • Interpreter nəcür işləyir
    • Python nədir
    • Digər python versiyaları
    • Python-dan ilk istifadə
    • Comments (şərhlər)
    • sadə data tiplər
    • sadə riyazi hesablamalar
    • print() funksiyası
    • Variables (dəyişənlər)
    • Shortcut operators
    • Type casting
    • Sadə string manipulation
    • input() funsiyası
    • Conditional operators (if,elif,else)
    • Loops(döngülər) while,for
    • Break, continue
    • Logic və bit operatorları
    • Lists
    • Functions (funksiyalar)
    • Tuple and dictionary
    • Exceptions
    • Exception handling (try-except)
  • 🤩PCAP
    • Modules (modullar)
    • Packages
  • Class-lar
    • Class-ların yaradılması
    • Class dəyişənləri
    • Class Inheritance
Powered by GitBook
On this page
  • Dictionary (lüğətlər)
  • Dictionaries (lüğətlər)

Was this helpful?

  1. PCEP

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

PreviousFunctions (funksiyalar)NextExceptions

Last updated 3 years ago

Was this helpful?

👶