# SÖZLÜKLER NEDİR VE NASIL KULLANILIR?


# Python'da Dictonary yani Sözlük nedir?

# Günlük hayattaki sözlüğe çok benzer. Bir öğenin karşılığını söyler. Örneğin: Apple --> Elma

# Anahtar --> Değer ifadeleri yani Key --> Value ile öğler bulunabilir.

# Örnek:

kisi = {"isim":"Osman","yas":32,"Cinsiyet":"E","Hobiler":["Yazmak","Okumak","Programlamak"]}

print(kisi)

# Çıktı: {'isim': 'Osman', 'yas': 32, 'Cinsiyet': 'E', 'Hobiler': ['Yazmak', 'Okumak', 'Programlamak']}

print(kisi["isim"]) # Osman (Sözlüklerde index değeri yerine anahtar kullanılır)

print(kisi["yas"])  # 32


# Değer değiştirme yani sözlük değerini güncelleme.

kisi["isim"] = "Selçuk"

print(kisi["isim"]) # Selçuk


# Aynı anda birden fazla alan güncelleme.

kisi.update({"isim":"İlter","Yas":33})

print(kisi) # {'isim': 'İlter', 'yas': 32, 'Cinsiyet': 'E', 'Hobiler': ['Yazmak', 'Okumak', 'Programlamak'], 'Yas': 33}


# Bir alanı ekleme. ID değer ve anahtarı ekleniyor

kisi["id"] = 123

print(kisi) # {'isim': 'İlter', 'yas': 32, 'Cinsiyet': 'E', 'Hobiler': ['Yazmak', 'Okumak', 'Programlamak'], 'Yas': 33, 'id': 123}


# Bir alan silme. ID değer ve anahtarı siliniyor.

del kisi["id"]

print(kisi) #{'isim': 'İlter', 'yas': 32, 'Cinsiyet': 'E', 'Hobiler': ['Yazmak', 'Okumak', 'Programlamak'], 'Yas': 33}


# For döngüsü ile sözlüğü yazdırma.

# Anahtarları yazdırma.

for x in kisi:

    print(x)

# Çıktı:

# isim

# yas

# Cinsiyet

# Hobiler

# Yas

# Değerleri yazdırma.

for x in kisi:

    print(kisi[x])

# Çıktı:

# İlter

# 32

# E

# ['Yazmak', 'Okumak', 'Programlamak']

# 33

# Sadece anahtarları yazdırma.

print(kisi.keys()) # dict_keys(['isim', 'yas', 'Cinsiyet', 'Hobiler', 'Yas'])

# Sadece değerleri yazdırma.

print(kisi.values()) # dict_values(['İlter', 32, 'E', ['Yazmak', 'Okumak', 'Programlamak'], 33])

# Anahtar ve değer olarak alma.

print(kisi.items()) # dict_items([('isim', 'İlter'), ('yas', 32), ('Cinsiyet', 'E'), ('Hobiler', ['Yazmak', 'Okumak', 'Programlamak']), ('Yas', 33)])

# For ile yazdırma.

for k,v in kisi.items():

    print(k,v)

# Çıktı:

# isim İlter

# yas 32

# Cinsiyet E

# Hobiler ['Yazmak', 'Okumak', 'Programlamak']

# Yas 33


# hata almadan "yok" çıktısı alma.

# Normal yazdırma hata verir. Get ise "none" yani "yok" sonucunu verir.

# get değerinin aldığı ikinci parametre istediğiniz bir çıktıyı almanızı sağlar.

print(kisi.get("id")) #None

print(kisi.get("id","Bulunamadı")) # Bulunamadı