الشروط والتكرار في القواميس

10.4 الشروط والتكرار في القواميس

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على

  • كتابة تعليمة شرطية للتحقق من وجود مفتاح/قيمة.
  • كتابة حلقة for للتكرار على عناصر القاموس.

الشروط الخاصة بالقواميس

يمكن استخدام التعليمات الشرطية مع القواميس للتحقق مما إذا كانت مفاتيح أو قيم أو عناصر قاموس معينة موجودة في القاموس، أو ما إذا كانت قيمة ما تستوفي شرطًا بعينه.

مثال 10.2

قوالب وأمثلة للتعليمات الشرطية على القاموس

dict.items()
# (key, value) in dictionary.items()

movies = {"The godfather": 1974, "Interstellar": 2014}

print(("Interstellar", 2014) in movies.items())

True

جدول 10.1
الشروط على القيم أو المفاتيح
# dictionary[key] عامل test_value

movies = {"The godfather": 1974, "Interstellar": 2014}

print(movies["The godfather"] < 2000)

True

جدول 10.2
dict.keys()
# key in dictionary.keys()

movies = {"The godfather": 1974, "Interstellar": 2014}

print("Interstellar" in movies.keys())

True

جدول 10.3
dict.values()
# value in dictionary.values()

movies = {"The godfather": 1974, "Interstellar": 2014}

print(2014 in movies.values())

True

جدول 10.4

مفاهيم تطبيقية

الشروط على القواميس

بالنظر إلى القاموس fruit_count = {"apple": 2, "orange": 5, "pomegranate": 1}، أجب عن الأسئلة التالية.

1.
ما ناتج "apple" in fruit_count.keys()؟
  1. True
  2. False
2.
ما ناتج ("orange", 5) in fruit_count.items()؟
  1. SyntaxError
  2. True
  3. False
3.
أي تعليمة شرطية تتحقق مما إذا كانت القيمة المرتبطة بالمفتاح "pomegranate" أكبر من 0؟
  1. fruit_count("pomegranate") > 0
  2. fruit_count["pomegranate"] > 0
  3. fruit_count.get("pomegranate" > 0)

التكرار على القاموس

التكرار على قاموس بايثون آليةٌ للمرور على أزواج المفتاح-القيمة فيه. ويمكن التكرار على المفاتيح أو العناصر. عند التكرار باستخدام المفاتيح، تُستخلص المفاتيح عبر الدالّة keys() وتُمرَّر إلى مُتغيِّر الحلقة واحدةً تلو الأخرى. عند التكرار على العناصر باستخدام الدالّة items()، يُمرَّر كل من المفتاح والقيمة لكل عنصر إلى مُتغيِّر الحلقة.

حلقة التكرار المحدد على قاموس تسترجع كل مفتاح في القاموس

    for key in dictionary: # تعبير الحلقة
      # التعليمات المُنفَّذة داخل الحلقة

    # التعليمات المُنفَّذة بعد الحلقة

مثال 10.3

التكرار على قاموس

dict.items()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for key, value in zip_codes.items():
  print(key, value)
    
Berkeley 94709
Santa Cruz 95064
Mountain View 94030
جدول 10.5
dict.keys()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for key in zip_codes.keys():
  print(key)
Berkeley
Santa Cruz
Mountain View
جدول 10.6
dict.values()
zip_codes = {"Berkeley": 94709, "Santa Cruz": 95064, "Mountain View": 94030}

for value in zip_codes.values():
  print(value)
94709
95064
94030
جدول 10.7

مفاهيم تطبيقية

حلقات التكرار على القواميس

4.
ما الدالّة المستخدمة للتكرار على قيم قاموس بايثون؟
  1. keys()
  2. values()
  3. items()
5.
ما ناتج الشِفرة التالية؟
fruit_count = {"apple": 2, "orange": 5, "banana": 1}
for key in fruit_count.keys():
  print(key, end = " ")
  1. apple orange banana
  2. 2 5 1
  3. ("apple", 2) ("orange", 5) ("banana", 1)
6.
ما ناتج الشِفرة التالية؟
fruit_count = {"apple": 2, "orange": 5, "banana": 1}
for value in fruit_count.values():
  print(value * 2, end = " ")
  1. apple orange banana
  2. 2 5 1
  3. 4 10 2

جرّب بنفسك

عدد الأحرف في سلسلة نصية

بالنظر إلى سلسلة نصية، احسب ثم اطبع عدد مرات ظهور كل حرف باستخدام قاموس.

    المدخل:
    string_value = "This is a string"
    يطبع {"T": 1, "h": 1, "i": 3, "s": 3, " ": 3, "a": 1, "t": 1, "r": 1, "n": 1, 
    "g": 1}

جرّب بنفسك

احسب العدد الإجمالي للفواكه

بالنظر إلى قاموس fruit_count الذي يحتوي على معلومات حول الفواكه وعدد كل فاكهة، احسب مجموع عدد الفواكه من جميع الأنواع.

    المدخل:
    fruit_count = {"banana": 2, "orange": 5, "peach": 5}
    يطبع 12