قاموس بايثون هو عبارة عن مجموعة من البيانات المخزنة في نموذج القيمة الرئيسية. يرتبط كل مفتاح بقيمته. وهي قابلة للتغيير بطبيعتها، مما يعني أنه يمكننا تغيير البيانات بعد إنشائها.
إنه جمع غير منظم للبيانات ويسمح بتخزين قيم مكررة، ولكن يجب أن يكون المفتاح فريدًا.
سلسلة في صفيف في ج
يتم تعريف القاموس باستخدام الأقواس المتعرجة {}، ويتم فصل زوج القيمة الرئيسية بفاصلة.
dict1 = {'name': 'Devansh', 'age': 22, 'Rollno':90014} print(dict1)
انتاج:
لماذا تحتاج إلى فرز القاموس
- التعقيد الزمني للبحث في القائمة هو O(n)، والقاموس لديه تعقيد وقت البحث 0(1)، مما يجعل القاموس أسرع من القائمة. يمكن استخدام القاموس في مكانه للقائمة كلما احتاج الأمر.
- يتيح لنا الفرز تحليل البيانات بكفاءة عندما نعمل مع بنية البيانات.
- يوفر القاموس المصنف فهمًا أفضل للتعامل مع العمليات المعقدة.
دعونا نفهم الطرق المختلفة لفرز القاموس.
- الترتيب حسب المفاتيح
- الفرز حسب القيم
- خوارزمية الفرز
- عكس الترتيب الذي تم فرزه
الفرز حسب المفاتيح والقيم
بايثون يقدم وظائف المفاتيح المضمنة () ووظائف القيم () لفرز القاموس. يأخذ أي تكرار كوسيطة ويعيد قائمة المفاتيح التي تم فرزها. يمكننا استخدام المفاتيح لفرز القاموس بترتيب تصاعدي. دعونا نفهم المثال التالي.
مثال -
names = {1:'Alice' ,2:'John' ,4:'Peter' ,3:'Andrew' ,6:'Ruffalo' ,5:'Chris' } #print a sorted list of the keys print(sorted(names.keys())) #print the sorted list with items. print(sorted(names.items()))
انتاج:
[1, 2, 3, 4, 5, 6] [(1, 'Alice'), (2, 'John'), (3, 'Andrew'), (4, 'Peter'), (5, 'Chris'), (6, 'Ruffalo')]
توضيح -
في الكود أعلاه، قمنا بتعريف القاموس أسماء . استخدمنا الوظيفة المضمنة مع مرتبة() الدالة التي أعادت قائمة المفاتيح التي تم فرزها. بعد ذلك، استخدمنا أغراض() وظيفة للحصول على القاموس بالترتيب الذي تم فرزه.
خوارزمية الفرز
هناك خوارزمية فرز مختلفة لفرز القاموس؛ يمكننا استخدام الوسائط الأخرى في الطريقة المصنفة. دعونا نفهم المثال التالي.
مثال -
daynames = { 'one' : 'Monday' , 'six' : 'Saturday' ,'three' : 'Wednesday' , 'two' : 'Tuesday' , 'five': 'Friday' , 'seven': 'Sunday' } print(daynames) number = { 'one' : 1 , 'two' : 2 , 'three' : 3 , 'four' : 4 , 'five' : 5 , 'six' : 6 , 'seven' : 7} print(sorted(daynames , key=number.__getitem__)) print([daynames[i] for i in sorted(daynames , key=number.__getitem__)])
انتاج:
{'one': 'Monday', 'six': 'Saturday', 'three': 'Wednesday', 'two': 'Tuesday', 'five': 'Friday', 'seven': 'Sunday'} ['one', 'two', 'three', 'five', 'six', 'seven'] ['Monday', 'Tuesday', 'Wednesday', 'Friday', 'Saturday', 'Sunday']
عكس الترتيب الذي تم فرزه
يمكن عكس القاموس باستخدام يعكس دعوى. دعونا نفهم المثال التالي.
مثال -
a = {'a':2 ,'b':1 ,'c':3 ,'d':4 ,'e':5 ,'f':6 } print(sorted(a.values() , reverse= True))
انتاج:
[6, 5, 4, 3, 2, 1]
في هذا البرنامج التعليمي، ناقشنا كيفية فرز القاموس في بايثون. من السهل التعامل مع القاموس المرتب مع الكم الكبير من البيانات ويمنحنا نتيجة بحث سريعة.