قاموس بلغة Python مع بناء الجملة والمثال
ما هو القاموس في Python?
A قاموس بلغة Python هو مجموعة غير مرتبة وقابلة للتغيير من قيم البيانات التي تحتوي على أزواج مفتاح-قيمة. كل زوج مفتاح-قيمة في القاموس يربط المفتاح بالقيمة المرتبطة به مما يجعله أكثر تحسينًا. يتم إعلان القاموس في بايثون عن طريق تضمين قائمة مفصولة بفاصلة من أزواج مفتاح-قيمة باستخدام الأقواس المتعرجة ({}). Python ينقسم القاموس إلى عنصرين: المفاتيح والقيم.
- ستكون المفاتيح عنصرًا واحدًا
- يمكن أن تكون القيم عبارة عن قائمة أو قائمة داخل قائمة أو أرقام وما إلى ذلك.
بناء الجملة لـ Python قاموس
Dict = { ' Tim': 18, xyz,.. }
يتم إدراج القاموس بين قوسين متعرجين، ويتم إعلان المفاتيح والقيم داخل هذه الأقواس المتعرجة. يتم فصل كل مفتاح عن قيمته بواسطة علامة النقطتين (:)، بينما يتم فصل كل عنصر بواسطة الفواصل.
خصائص مفاتيح القاموس
هناك نقطتان مهمتان أثناء استخدام مفاتيح القاموس
- لا يسمح بأكثر من إدخال واحد لكل مفتاح (لا يسمح بتكرار المفتاح)
- يمكن أن تكون القيم الموجودة في القاموس من أي نوع، بينما يجب أن تكون المفاتيح غير قابلة للتغيير مثل الأرقام، الصفوف
- مفاتيح القاموس حساسة لحالة الأحرف - نفس اسم المفتاح ولكن مع حالات مختلفة يتم التعامل معها على أنها مفاتيح مختلفة Python قواميس.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print (Dict['Tiffany'])
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print((Dict['Tiffany']))
- في الكود، لدينا اسم القاموس "Dict"
- قمنا بتعريف اسم الشخص وعمره في القاموس، حيث الاسم هو "المفاتيح" والعمر هو "القيمة".
- الآن قم بتشغيل الكود
- فإنه يسترد عمر تيفاني من القاموس.
Python طرق القاموس
نسخ القاموس
يمكنك أيضًا نسخ القاموس بأكمله إلى قاموس جديد. على سبيل المثال، قمنا هنا بنسخ قاموسنا الأصلي إلى اسم القاموس الجديد "Boys" و"Girls".
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} studentX=Boys.copy() studentY=Girls.copy() print studentX print studentY
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} studentX=Boys.copy() studentY=Girls.copy() print(studentX) print(studentY)
- لدينا القاموس الأصلي (Dict) مع اسم وعمر الأولاد والبنات معًا
- لكننا نريد أن تكون قائمة الأولاد منفصلة عن قائمة البنات، لذلك قمنا بتحديد عنصر الأولاد والبنات في قاموس منفصل باسم "الأولاد" و"الفتيات".
- الآن مرة أخرى قمنا بإنشاء اسم قاموس جديد "الطالب X" و"الطالب Y"، حيث يتم نسخ جميع مفاتيح وقيم قاموس الصبي إلى الطالب X، وسيتم نسخ الفتيات في الطالب Y
- لذا، ليس عليك الآن البحث في القائمة بأكملها في القاموس الرئيسي (Dict) للتحقق من هو الصبي ومن هو الفتاة، كل ما عليك فعله هو طباعة الطالب X إذا كنت تريد قائمة الأولاد وStudentY إذا كنت تريد قائمة الفتيات
- لذلك، عند تشغيل قاموس الطالب X والطالب Y، سيعرض جميع العناصر الموجودة في قاموس "الأولاد" و"البنات" بشكل منفصل
تحديث القاموس
يمكنك أيضًا تحديث القاموس عن طريق إضافة إدخال جديد أو زوج مفتاح وقيمة إلى إدخال موجود أو عن طريق حذف إدخال موجود. هنا في المثال، سنضيف اسمًا آخر، "سارة" إلى قاموسنا الحالي.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({"Sarah":9}) print Dict
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Dict.update({"Sarah":9}) print(Dict)
- قاموسنا الحالي "Dict" لا يحمل اسم "Sarah".
- نحن نستخدم طريقة Dict.update لإضافة سارة إلى قاموسنا الحالي
- الآن قم بتشغيل الكود، فهو يضيف سارة إلى قاموسنا الحالي
حذف المفاتيح من القاموس
Python يتيح لك القاموس حرية حذف أي عنصر من قائمة القاموس. لنفترض أنك لا تريد اسم Charlie في القائمة، لذا يمكنك إزالة عنصر المفتاح بالكود التالي.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print Dict
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} del Dict ['Charlie'] print(Dict)
عند تشغيل هذا الرمز، يجب أن يطبع قائمة القاموس بدون Charlie.
- استخدمنا رمز ديل ديكت
- عند تنفيذ التعليمات البرمجية، يتم حذف تشارلي من القاموس الرئيسي
طريقة عناصر القاموس ().
تقوم طريقة items() بإرجاع قائمة بأزواج الصف (المفاتيح، القيمة) في القاموس.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "Students Name: %s" % Dict.items()
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Students Name: %s" % list(Dict.items()))
- نحن نستخدم طريقة عناصر التعليمات البرمجية () لـ Dict.
- عند تنفيذ التعليمات البرمجية، تقوم بإرجاع قائمة العناصر (المفاتيح والقيم) من القاموس
تحقق مما إذا كان هناك مفتاح معين موجود بالفعل في القاموس
بالنسبة لقائمة معينة، يمكنك أيضًا التحقق مما إذا كان القاموس الفرعي الخاص بنا موجودًا في القاموس الرئيسي أم لا. لدينا هنا قاموسين فرعيين "الأولاد" و"البنات"، والآن نريد التحقق مما إذا كان قاموسنا الأولاد موجودًا في "الإملاء" الرئيسي أم لا. لذلك، نستخدم طريقة for Loop مع طريقة else if.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} for key in Boys.keys(): if key in Dict.keys(): print True else: print False
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} for key in list(Boys.keys()): if key in list(Dict.keys()): print(True) else: print(False)
- إنّ لحلقة في الكود يتحقق من كل مفتاح في القاموس الرئيسي لمفاتيح الأولاد
- إذا كان موجودًا في القاموس الرئيسي، فيجب أن يُطبع صحيحًا وإلا يجب أن يُطبع خطأ
- عند تنفيذ الكود، سيطبع "صحيح" ثلاث مرات، حيث حصلنا على ثلاثة عناصر في قاموس "الأولاد" الخاص بنا
- فيدل على وجود كلمة “الأولاد” في قاموسنا الرئيسي (Dict)
فرز القاموس
في القاموس، يمكنك أيضًا فرز العناصر. على سبيل المثال، إذا أردنا طباعة اسم عناصر قاموسنا أبجديًا، فيجب علينا استخدام حلقة for. سيتم فرز كل عنصر من عناصر القاموس وفقًا لذلك.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} Students = Dict.keys() Students.sort() for S in Students: print":".join((S,str(Dict[S])))
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} Students = list(Dict.keys()) Students.sort() for S in Students: print(":".join((S,str(Dict[S]))))
- لقد أعلنا عن المتغير الطلاب في قاموسنا "Dict".
- ثم نستخدم الكود Student.sort، الذي سيقوم بفرز العنصر داخل قاموسنا
- لكن لفرز كل عنصر في القاموس، نقوم بتشغيل حلقة for عن طريق الإعلان عن المتغير S
- الآن، عندما ننفذ الكود، ستستدعي حلقة for كل عنصر من القاموس، وستطبع السلسلة والقيمة بالترتيب
Python وظائف القاموس المضمنة
طريقة قاموس لين ().
الدالة len() تعطي عدد الأزواج في القاموس.
على سبيل المثال،
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "Length : %d" % len (Dict)
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("Length : %d" % len (Dict))
عند تنفيذ الدالة len (Dict) فإنها تعطي الناتج عند "4" نظرًا لوجود أربعة عناصر في قاموسنا
أنواع المتغيرات
Python لا يتطلب الإعلان بشكل صريح عن مساحة الذاكرة الاحتياطية؛ يحدث ذلك تلقائيا. يتم استخدام القيم المخصصة للمتغير "=" بعلامة المساواة. رمز تحديد نوع المتغير هو "%type (Dict)."
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "variable Type: %s" %type (Dict)
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("variable Type: %s" %type (Dict))
- استخدم الكود %type لمعرفة نوع المتغير
- عندما يتم تنفيذ التعليمات البرمجية، فإنه يخبر أن نوع المتغير هو القاموس
Python قائمة طريقة cmp()
يتم استخدام طريقة المقارنة cmp() في Python لمقارنة القيم ومفاتيح اثنين من القواميس. إذا كانت الطريقة ترجع 0 إذا كان كلا القواميس متساويين، 1 إذا كان dic1 > dict2 و -1 إذا كان dict1 < dict2.
Python 2 مثال
Boys = {'Tim': 18,'Charlie':12,'Robert':25} Girls = {'Tiffany':22} print cmp(Girls, Boys)
Python 3 مثال
cmp is not supported in Python 3
- لدينا اسمان في القاموس، "أولاد" و"بنات".
- أيهما تعلنه أولاً في الكود "cmp(Girls, Boys)" سيتم اعتباره قاموسًا 1. في حالتنا، أعلنا عن "Girls" أولاً، لذلك سيتم اعتباره قاموس 1 والأولاد قاموس 2
- عند تنفيذ التعليمات البرمجية، يتم طباعة -1، مما يشير إلى أن قاموسنا 1 أقل من القاموس 2.
سلسلة القاموس (ديكت)
باستخدام طريقة Str()، يمكنك تحويل القاموس إلى تنسيق سلسلة قابل للطباعة.
Python 2 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print "printable string:%s" % str (Dict)
Python 3 مثال
Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25} print("printable string:%s" % str (Dict))
- استخدم الكود % str (Dict)
- سيعيد عناصر القاموس إلى تنسيق سلسلة قابل للطباعة
فيما يلي قائمة بجميع أساليب القاموس
خدمة التوصيل | الوصف | بناء الجملة |
---|---|---|
نسخة () | انسخ القاموس بأكمله إلى القاموس الجديد | dict.copy() |
تحديث () | قم بتحديث القاموس عن طريق إضافة إدخال جديد أو زوج من القيمة الرئيسية إلى إدخال موجود أو عن طريق حذف إدخال موجود. | تحديث الإملاء([أخرى]) |
العناصر() | إرجاع قائمة بأزواج الصف (المفاتيح، القيمة) في القاموس. | قاموس العناصر () |
فرز() | يمكنك فرز العناصر | قاموس.فرز () |
لين () | يعطي عدد الأزواج في القاموس. | لين (ديكت) |
cmp() | قارن بين قيم ومفاتيح قاموسين | cmp (dict1، dict2) |
شارع () | أنشئ قاموسًا بتنسيق سلسلة قابل للطباعة | شارع (ديكت) |
دمج القواميس
سوف نفهم هنا كيفية دمج قواميسين محددين في قاموس واحد.
لدي قاموسين كما هو موضح أدناه:
القاموس 1 : my_dict1
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"}
القاموس 2 : my_dict2
my_dict2 = {"firstName" : "Nick", "lastName": "Price"}
دعونا ندمج هذين القواميس my_dict1 وmy_dict2 وننشئ قاموسًا واحدًا باستخدام namemy_dict.
دمج قاموسين باستخدام طريقة التحديث ().
ستساعدنا طريقة التحديث () في دمج قاموس مع آخر. في المثال، سنقوم بتحديث my_dict1 بـ my_dict2. بعد استخدام طريقة التحديث()، سيحتوي my_dict1 على محتويات my_dict2 كما هو موضح أدناه:
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"} my_dict2 = {"firstName" : "Nick", "lastName": "Price"} my_dict1.update(my_dict2) print(my_dict1)
الإخراج:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
دمج القواميس باستخدام الطريقة ** (From Python 3.5 فصاعدا)
** يسمى Kwargs في Python، وسوف تعمل مع Python الإصدار 3.5+. باستخدام **، يمكننا دمج قاموسين، وسيقوم بإرجاع القاموس المدمج. سيؤدي استخدام ** أمام المتغير إلى استبدال المتغير بكل محتوياته.
فيما يلي مثال عملي لاستخدام ** لدمج دليلين.
my_dict1 = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"} my_dict2 = {"firstName" : "Nick", "lastName": "Price"} my_dict = {**my_dict1, **my_dict2} print(my_dict)
الإخراج:
{'username': 'XYZ', 'email': 'xyz@gmail.com', 'location': 'Mumbai', 'firstName': 'Nick', 'lastName': 'Price'}
اختبار عضوية القاموس
يمكنك اختبار ما إذا كان هناك مفتاح في الحاضر داخل القاموس أم لا. يمكن إجراء هذا الاختبار فقط على مفتاح القاموس وليس على القيمة. يتم إجراء اختبار العضوية باستخدام in الكلمة الرئيسية. عند التحقق من المفتاح في القاموس باستخدام in الكلمة الأساسية، يعود التعبير صحيحًا إذا كان المفتاح موجودًا وخطأ إذا لم يكن موجودًا.
فيما يلي مثال يوضح اختبار عضوية الأعضاء في القاموس.
my_dict = {"username": "XYZ", "email": "xyz@gmail.com", "location":"Mumbai"} print("email" in my_dict) print("location" in my_dict) print("test" in my_dict)
الإخراج:
True True False
الملخص
- القواميس في لغة البرمجة هي نوع من بنية البيانات المستخدمة لتخزين المعلومات المتصلة بطريقة ما.
- Python يتم تعريف القاموس إلى عنصرين المفاتيح والقيم.
- لا تقوم القواميس بتخزين معلوماتها بأي ترتيب معين، لذلك قد لا تتمكن من استعادة معلوماتك بنفس الترتيب الذي أدخلتها بها.
- ستكون المفاتيح عنصرًا واحدًا
- يمكن أن تكون القيم عبارة عن قائمة أو قائمة داخل قائمة أو أرقام وما إلى ذلك.
- لا يسمح بأكثر من إدخال واحد لكل مفتاح (لا يسمح بتكرار المفتاح)
- يمكن أن تكون القيم الموجودة في القاموس من أي نوع، بينما يجب أن تكون المفاتيح غير قابلة للتغيير مثل الأرقام أو المجموعات أو السلاسل.
- مفاتيح القاموس حساسة لحالة الأحرف - نفس اسم المفتاح ولكن مع حالات مختلفة يتم التعامل معها على أنها مفاتيح مختلفة Python قواميس.