القائمة الرئيسية

الصفحات

القاموس بالظبط مثل فكرة القاموس المتعارف عليه .

فكما في القاموس يوجد الكلمة ومرادفها كذلك في القاموس في بايثون يوجد الكلمة والمرادف لها .

إعلانات الرجاء عدم الضغط على الإعلان إلا إذا كنت فعلا مهتم بمحتواه وإذا رأيت إعلان مخالف نرجوا إخبارنا ولكن تختلف الأسماء بين (الكلمة والمرادف لها) إلى (المفتاح والقيمة) فالمفتاح يحمل هذه القيمة أو = هذه القيمة أو يرادف هذه القيمة .

مثل طالب إسمه أحمد درجته 90 فالمفتاح هو أحمد والقيمة الخاصة به هي 90 ويتم كتابته هكذا :

d ={ "ahmed" : 90 , "mona" : 70 ,"noha" : 80 } 

حيث ahmed و mona و noha مفاتيح والأرقام  80 - 70 - 90 هي القيم .


ومن القواعد الهامة في كتابة القواميس أنك إذا كتبت المفتاح (وهو كما إتفقنا القيمة الأولى بعد القوس الخاص بالقاموس والذي هو نفس قوس المجموعة set {} ) إذا كتبت في المفتاح القيمة نوعها سترينج (string) فلابد أن تكتب في باقي مفاتيح نفس 

القاموس جميع القيم  سترينج (streng) وإذا كتت في القيمة انتجر integer فلابد من كتابة جميع القيم في هذا القاموس انتجر integer 

وهكذا فنوع البيانات التي تعطيها للمفتاح أو للقيمة لابد من عدم تغييرها داخل القاموس

من خصائص القاموس داخل لغة بايثون :

1 - يمكن التعديل على القواميس أي يمكن التعديل على أي قيمة من قيم القاموس باستخدام المفتاح الخاص بهذه القيمة كالتالي  :

d ={ "ahmed" : 90 , "mona" : 70 ,"noha" : 80 } 

d["ahmed"]=99

print(d)

d ={ "ahmed" : 99 , "mona" : 70 ,"noha" : 80 } 

تم بالفعل تغير قيمة المفتاح ahmed من 90 إلى 99

2 - إذا أردت أن أعرف هل كلمة معينة موجودة في المفاتيح في داخل القاموس أم لا وسيتم الرد ب True أو False 

سأقوم بصناعة متغير جديد يحمل داخله السؤال على هذا الشكل :

d ={ "ahmed" : 90 , "mona" : 70 ,"noha" : 80 } 

q = ("mona"in d)

print (q)

ستكون النتيجة True لأن بالفعل mona داخل القاموس المسمى d 

إعلانات الرجاء عدم الضغط على الإعلان إلا إذا كنت فعلا مهتم بمحتواه وإذا رأيت إعلان مخالف نرجوا إخبارنا وممكن كتابتها بدون إنشاء متغير جديد فقط نقوم بكتابة print("mona"in d)

3 - وإذا أردت أن أعرف هل عنصر معين موجود من ضمن المفاتيح أم لا 

d ={ "ahmed" : 90 , "mona" : 70 ,"noha" : 80 } 

print(90 in d)

وكانت النتيجة False رغم وجود العنصر 90 داخل القاموس إلا أننا نسأل هل العنصر 90 مفتاح أم لا .

 وفي الحقيقة هو ليس مفتاح بل هو قيمة وبالتالي جائت الإجابة False فمن الواضح أن هذه الدالة بهذه الطريقة تؤدي للبحث داخل القواميس عن المفاتيح فقط أو البحث داخل المفاتيح فقط (x in dec) 

بمعنى انني إذا أردت أن أبحث عن شىء هل هو موجود في القيم أم لا على عكس الأمر السابق الذي يبحث فقط في المفاتيح سأستخدم الدالة التالية :

d ={ "ahmed" : 90 , "mona" : 70 ,"noha" : 80 } 

print(90 in d.values())

الآن جائت النتيجة True لأنه بالفعل العنصر 90 موجود داخل القيم في القاموس وليس داخل المفاتيح

وهناك طريقة أخرى لكتابة القواميس في بايثون وهي كالتالي :

d2 = {n:n**2 for n in range(7)}

print (d2)

ستكون النتيحة التالي :

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36} وهذا بالفعل قاموس 

وهذا الكود d2 = {n:n**2 for n in range(7)}

معناه ان n الاولى ستكتب كرقم عادي وهذا الرقم سيأخذ من دالة range حيث أن دالة range هنا مداها من 0 إلى 6 

فأول رقم سيصطدم به حرف ال n الذي يحمل القيم التي في دالة ال range هو رقم 0 وبناء عليه سيتم كتابة 0 ثم بعد ذلك

large;"> نجد في الكود علامة : فسيتم كتابتها كما هي ثم بعد ذلك نجد حرف n مرة أخرى ولكن هذه المرة حسب المثال n **2 أي 

مربع n (أي أكتب الرقم n حسب ترتيبه في ال range ثم أكتب : ثم أكتب مربع نفس الرقم) وبما أن هذه الطريقة متعارف عليها داخل بايثون أنها من طرق كتابة القواميس فسيتم عمل كومة , بشكل تلقائي للفصل بين المفاتيح والقيم حيث من الواضح أن n وحدها تمثل المفاتيح ومربع n يمثل القيم وسيمتد هذا القاموس إلى نهاية ال range أي 7 خانات تبدأ من صفر وتنتهي عند الرقم 6

 كما ويمكن بالطبع التلاعب في ال range كما نريد وأيضا التلاعب في n الأولى (المفتاح) كمثال ضرب n في 3 أو عمل أس لها أو كما نريد كما ويمكن ايضا التلاعب في  n الثانية والتي تمثل القيمة كما نريد 

هذا الجزء الأول من شرح القواميس في بايثون 

أنت الان في اول موضوع
هل اعجبك الموضوع :

تعليقات