Sözlüklerle dinamik programlama

Tamamlandı

Programınızda, ay sayısını toplama gibi çeşitli hesaplamalar yapmak istiyorsunuz. Ayrıca, daha gelişmiş programlamaya girdikçe, bu tür bilgileri doğrudan Python'a kodlamak yerine dosyalardan veya veritabanından yüklemiş olabilirsiniz.

Python, bu senaryoları desteklemeye yardımcı olmak için bir sözlüğün içindeki anahtarları ve değerleri liste olarak işlemenizi sağlar. Anahtarları ve değerleri dinamik olarak belirleyebilir ve çeşitli hesaplamalar yapabilirsiniz.

Aylık yağış miktarlarının depolu olduğu bir sözlük düşünün. Büyük olasılıkla her ay ve ilgili yağış için anahtarlarınız olacaktır. Toplam yağış miktarını eklemek istiyorsunuz ve her bir anahtarı kullanarak işlemi gerçekleştirmek için kodu yazmak oldukça yorucu olabilir.

Tüm anahtarları ve değerleri alma

yöntemi, keys() tüm anahtarları içeren bir liste nesnesi döndürür. Sözlükteki tüm öğeler arasında yineleme yapmak için bu yöntemi kullanabilirsiniz.

Son üç aylık yağışları depolayarak aşağıdaki sözlüğe sahip olduğunuzu düşünün.

rainfall = {
    'october': 3.5,
    'november': 4.2,
    'december': 2.1
}

Tüm yağışların listesini görüntülemek istediğinizi varsayalım. Her ayın adını yazabilirsiniz, ancak bu yorucu olabilir.


for key in rainfall.keys():
    print(f'{key}: {rainfall[key]}cm')
october: 3.5cm
november: 4.2cm
december: 2.1cm

Dekont

Sabit kodlanmış dize değişmez değeri yerine değişken adıyla köşeli ayraçlar ([ ]) kullanabilirsiniz.

Sözlükte anahtar olup olmadığını belirleme

Sözlükteki bir değeri güncelleştirdiğinizde Python, anahtar yoksa mevcut değerin üzerine yazar veya yeni bir değer oluşturur. Bir değerin üzerine yazmak yerine eklemek istiyorsanız, kullanarak inanahtarın var olup olmadığını denetleyebilirsiniz. Örneğin, Aralık ayına bir değer eklemek veya yoksa yeni bir değer oluşturmak istiyorsanız aşağıdakileri kullanabilirsiniz:

if 'december' in rainfall:
    rainfall['december'] = rainfall['december'] + 1
else:
    rainfall['december'] = 1

# Because december exists, the value will be 3.1

Tüm değerleri alma

benzer şekildekeys(), values() ilgili anahtarları olmadan bir sözlükteki tüm değerlerin listesini döndürür. values() , anahtarlar ayın adı olan önceki örnek gibi etiketleme amacıyla anahtarı kullanırken yararlı olabilir. Toplam yağış miktarını belirlemek için kullanabilirsiniz values() :

total_rainfall = 0
for value in rainfall.values():
    total_rainfall = total_rainfall + value

print(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.