CodeGym /Kurslar /Python SELF AZ /Sözlük ilə iş

Sözlük ilə iş

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

2.1 Elementlərin sayını almaq

Python-da sözlükdə olan elementlərin sayını almaq üçün daxili len() funksiyası istifadə olunur. Bu funksiya sözlükdəki cütlüklərin sayını – açar-dəyər – qaytarır. Və ya istəsəniz, yalnız açarların sayını desək də olar.

Funksiyanın istifadə nümunəsi:


person = {"name": "Alice", "age": 25, "city": "New York"}
num_elements = len(person)
print(num_elements)  # Çıxış: 3 

Bu nümunədə bizdə 3 elementli person adlı sözlük var. len(person) funksiyası sözlükdəki elementlərin sayını – 3 – qaytarır.

Sözlüyün boşluğunu yoxlamaq

Siz sözlüyün boşluğunu yoxlamaq üçün len() funksiyasını istifadə edə bilərsiniz. Bu, şərtlər və döngələr zamanı faydalıdır.


empty_dict = {}
print(len(empty_dict))  # Çıxış: 0

person = {"name": "Alice", "age": 25, "city": "New York"}

if len(person) > 0:
    print("Sözlük boş deyil")
else:
    print("Sözlük boşdur")

Daxili strukturlu sözlük

len() funksiyası yalnız yuxarı səviyyəli açarların sayını nəzərə alır, nə qədər ki, dəyər olaraq nə verildiyinə baxmayaraq.


complex_dict = {
    name: "Alice",
    details: {
        age: 25,
        city: "New York"
    },
    hobbies: ["reading", "traveling"]
}
print(len(complex_dict))  # Çıxış: 3

Bu nümunədə bizdə daxili strukturları olan bir sözlük var. len(complex_dict) 3 qaytarır, çünki yuxarı səviyyədə üç açar var: "name", "details" və "hobbies".

len() daxil edilmiş strukturların içindəki açarları diqqətə almır, məsələn, "age" və "city" "details" adlı sözlükdəki açarları. Çünki len() yalnız yuxarı səviyyəli açarları sayır. Əgər bütün elementlərin, daxil edilmiş strukturlar da daxil olmaqla, sayını hesablamaq lazım olsa, rekursiv metod istifadə etmək lazım olacaq. Amma bu gün deyil.

2.2 Tipin təyin edilməsi

Python-da type() funksiyası obyektdə tipin müəyyənləşdirilməsi üçün istifadə olunur. Sözlüklərlə iş zamanı type() obyektin dict sinfinin nümunəsi olduğunu müəyyən etmək üçün istifadə edilə bilər. Bu müxtəlif ssenarilərdə, məsələn, sözlükdə əməliyyat etməzdən əvvəl məlumat tipini yoxlamaq üçün faydalıdır.

İstifadə nümunələri:

Obyektin tipinin yoxlanılması


person = {"name": "Alice", "age": 25, "city": "New York"}
print(type(person))  # Çıxış: <class 'dict'>

Bu nümunədə biz person adlı sözlük yaradırıq və type istifadə edərək onun tipini müəyyənləşdiririk. Funksiya <class 'dict'> qaytarır, göstərir ki, person sözlükdür.

Məlumat tipinin şərti yoxlanması

type() funksiyası şərti ifadələrdə məlumat tipini yoxlamaq üçün istifadə edilə bilər, bu isə yalnız dict tipli obyektlər üçün müəyyən əməliyyatları yerinə yetirməyə imkan verir.


data = {"name": "Alice", "age": 25, "city": "New York"}

if type(data) is dict:
    print("Bu sözlükdür.")
else:
    print("Bu sözlük deyil.")

Bu nümunədə şərti ifadə data-nın sözlük olduğunu yoxlayır və uyğun kodu icra edir.

type() funksiyası istifadəçi funksiyaları daxilində arqumentlərin tipinin yoxlanması üçün istifadə edilə bilər, bu isə funksiyanın doğru məlumat tipini emal etməsini təmin edir.

Nümunə:


def process_data(data):
    if type(data) is dict:
        print("Sözlük işlənilir...")
        # Sözlük üzərində əməliyyatların icra edilməsi
    else:
        print("Səhv: sözlük gözlənilirdi.")

data = {"name": "Alice", "age": 25, "city": "New York"}
process_data(data)

Bu nümunədə process_data funksiyası data arqumentinin sözlük olub olmadığını yoxlayır və yalnız sözlüklər üçün müvafiq əməliyyatları həyata keçirir.

2.3 Elementin götürülməsi

Sözlüyün elementləri ilə işləmək siyahı və ya tuple ilə işləməyə oxşayır — biz də kvadrat mötərizələrdən istifadə edəcəyik. Amma mötərizələrdə elementin indeksi yerinə açarı göstərməliyik. Sözlüyün açarı hər hansı dəyişilməz element ola bilər: string, rəqəm və ya məsələn, tuple.


sözlük[açar]

Nümunə:


person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # Çap edəcək: Alice

Əgər açar yoxdursa, xəta baş verəcək:


person = {"name": "Alice", "age": 25, "city": "New York"}
person["country"]  # xəta baş verəcək KeyError: 'country'

get(key, def_value) metodu

get() metodu təhlükəsiz şəkildə açar üzrə dəyər almağa imkan verir. Əgər açar yoxdursa, metod varsayılan dəyəri (None, əgər varsayılan dəyər göstərilməyibsə) qaytarır. Bu, KeyError istisnasının baş verməsinin qarşısını alır.


person = {"name": "Alice", "age": 25, "city": "New York"}
age = person.get("age")
print(age)  # Çap edəcək: 25

country = person.get("country", "USA")
print(country)  # Çap edəcək: USA

get() metoduna ikinci parametr kimi dəyər ötürmək olar, əgər sözlükdə uyğun açar yoxdursa, həmin dəyər geri qaytarılacaq.

setdefault() metodu get() metoduna bənzər şəkildə işləyir, amma əgər açar sözlükdə yoxdursa, metod yalnız varsayılan dəyəri qaytarmır, həm də sözlüyə yeni bir açar: dəyər cütünü əlavə edir.


person = {"name": "Alice", "age": 25}
city = person.setdefault("city", "New York")
print(city)  # Çap edəcək: New York
print(person)  # Çap edəcək: {'name': 'Alice', 'age': 25, 'city': 'New York'}
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION