القاموس هو واحد من هياكل البيانات أقوى ومريحة في لغة البرمجة بيثون. إنها مجموعة غير مرتبة من أزواج القيمة الرئيسية ، حيث يكون كل مفتاح فريدا.
في بعض الحالات ، قد يكون من الضروري عكس القاموس ، أي تبديل المفاتيح والقيم. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، عندما تريد إجراء بحث سريع حسب القيمة بدلا من المفتاح.
في هذه المقالة ، سنلقي نظرة على بعض الطرق البسيطة التي ستسمح لك بقلب القاموس في بايثون. وسوف نقدم أيضا أمثلة التعليمات البرمجية لكل من هذه الأساليب بحيث يمكنك تطبيقها بسهولة في المشاريع الخاصة بك.
تحقق من هذه المقالة لمعرفة كيفية الوجه بشكل فعال القاموس في بيثون واستخدامها في التعليمات البرمجية.
- ما هو القاموس المقلوب في بايثون?
- أمثلة على استخدام قاموس مقلوب:
- الطريقة الأولى
- باستخدام حلقة
- الطريقة الثانية
- باستخدام الدالة المعكوسة ()
- أمثلة التعليمات البرمجية
- سؤال وجواب
- كيف يمكنني الوجه القاموس في بيثون?
- ما هي طرق قلب القاموس في بايثون?
- هل من الممكن قلب القاموس مع الحفاظ على القيم والمفاتيح الفريدة?
ما هو القاموس المقلوب في بايثون?
في البرمجة ، وخاصة في بايثون ، القاموس هو بنية بيانات تخزن العناصر بتنسيق قيمة المفتاح. المفاتيح فريدة وغير قابلة للتغيير ، ويمكن أن تكون القيم من أي نوع.
القاموس المقلوب في بايثون هو قاموس يتم فيه تبديل المفاتيح والقيم. أي أن مفاتيح القاموس الأصلي تصبح قيما ، وتصبح القيم مفاتيح. هذا يجعل من السهل إجراء بحث عكسي: ابحث عن المفتاح حسب القيمة.
عملية تسليم القاموس في بيثون يمكن أن تكون مفيدة في كثير من الحالات. على سبيل المثال ، عندما يكون من الضروري العثور على مفتاح حسب القيمة أو تحليل البيانات أو تحويل بنية بيانات للتشغيل المريح.
أمثلة على استخدام قاموس مقلوب:
- البحث عن مفتاح حسب القيمة:
- لنفترض أن لدينا قاموسا يمثل قاعدة بيانات المستخدم ، حيث تكون المفاتيح هي معرفات المستخدم والقيم هي أسمائها.
- إذا احتجنا إلى العثور على معرف المستخدم بالاسم ، فيمكننا قلب القاموس بحيث تكون المفاتيح هي أسماء المستخدمين والقيم هي المعرفات.
- ثم يمكننا العثور بسرعة على المعرف من خلال البحث عن القيمة في القاموس المقلوب.
- عمليات قاعدة البيانات:
- عند العمل مع قواعد البيانات ، يمكن استخدام قاموس مقلوب لتحسين الاستعلامات أو تسريع العمليات.
- على سبيل المثال ، يمكننا إنشاء قاموس مقلوب مسبقا ، حيث ستكون المفاتيح قيما من عمود جدول ، وستكون القيم عبارة عن قوائم بالسجلات التي تحتوي على هذه القيمة.
- بهذه الطريقة يمكننا بسهولة الحصول على جميع السجلات المقابلة لقيمة معينة دون الحاجة إلى المرور عبر الجدول بأكمله.
- تحويل البيانات:
- يمكن استخدام قاموس مقلوب لتحويل البيانات من تنسيق إلى آخر.
- على سبيل المثال ، إذا كان لدينا قاموس حيث المفاتيح هي اختصارات البلدان والقيم هي أسمائها ، فيمكننا قلب القاموس بحيث تكون المفاتيح أسماء البلدان والقيم هي الاختصارات.
- يمكن أن يكون هذا التحويل مفيدا إذا عملنا مع البيانات حيث يتم استخدام الاختصارات أو أسماء البلدان غالبا.
في بايثون ، هناك عدة طرق بسيطة لقلب القاموس باستخدام العديد من الوظائف والأساليب المضمنة. يمكنك معرفة المزيد عن هذا في مقالات أخرى حول هذا الموضوع.
الطريقة الأولى
تعتمد الطريقة الأولى لقلب القاموس في بايثون على استخدام طرق القائمة والقاموس.
1. إنشاء قاموس فارغ يحتوي على نسخة مقلوبة من القاموس الأصلي:
مرسوم معاكس = {}
2. كرر على القاموس الأصلي باستخدام حلقة. في كل تكرار ، نحصل على مفتاح وقيمة الزوج الحالي:
للمفتاح ، القيمة في المرسوم الأصلي.البنود():
3. تحقق مما إذا كان القاموس المقلوب يحتوي بالفعل على قيمة مقابلة للقيمة الحالية:
إذا كانت القيمة غير معكوسة:
4. إذا لم تكن القيمة موجودة في القاموس بعد ، فقم بإنشاء قائمة جديدة بالقيمة كعنصر أول:
[القيمة] = [مفتاح]
5. إذا كانت القيمة موجودة بالفعل في القاموس ، أضف المفتاح إلى قائمة القيم:
آخر:
مرسوم معكوس [قيمة].إلحاق (مفتاح)
6. بعد الانتهاء من الدورة ، لدينا قاموس مقلوب تشكل فيه قيم القاموس الأصلي مع المفاتيح قائمة بالقيم.
7. مثال على القاموس الناتج:
{'التفاح': ['الفاكهة'] ، 'الموز': ['الفاكهة'] ، 'الجزر': ['الخضار'] ، 'الخس': ['الخضار']}وبالتالي ، فإن الطريقة الأولى لقلب القاموس في بايثون تسمح لك بالحصول على قاموس جديد ، حيث تصبح قيم القاموس الأصلي مفاتيح ، وتصبح المفاتيح قيما.
باستخدام حلقة
وهناك طريقة أخرى لقلب القاموس في بيثون هو استخدام حلقة للذهاب من خلال القاموس الأصلي وإنشاء قاموس جديد حيث سيتم تبديل المفاتيح والقيم.
مثال على الكود:
مرسوم عكس (إدخال):
مرسوم معاكس = {}
للمفتاح ، القيمة في مرسوم الإدخال.البنود():
عكس_مرسوم [القيمة] = مفتاح
عودة عكس_مرسوم
# مثال على استخدام
بلدي مرسوم = {'التفاح': 1 ، 'الموز': 2 ، 'البرتقال': 3}
مرسوم معاكس = مرسوم معاكس
طباعة (مرسوم معكوس)
# الإخراج: {1: 'التفاح' ، 2: 'الموز' ، 3: 'البرتقال'}
، ويتم إضافة كل زوج إلى قاموس جديد بمفاتيح وقيم متبادلة. نتيجة لذلك ، تقوم الدالة بإرجاع قاموس مقلوب.
نحصل على قاموس مقلوب ، حيث تتوافق المفاتيح مع عدد الثمار ، والقيم تتوافق مع أسماء الثمار.
يفضل استخدام طريقة قلب القاموس باستخدام حلقة عندما تحتاج إلى قلب قاموس يحتوي على عدد كبير من العناصر أو عندما تحتاج إلى إجراء معالجة بيانات أكثر تعقيدا.
الطريقة الثانية
الطريقة الثانية لقلب القاموس في بايثون هي استخدام وحدة المجموعات. توفر هذه الوحدة فصولا ووظائف ملائمة للعمل مع مجموعات البيانات.
لقلب القاموس باستخدام وحدة المجموعات ، يمكنك استخدام فئة ديفولتديكت. يعمل بشكل مشابه للقاموس العادي ، ولكن لديه القدرة على تحديد قيمة افتراضية للمفاتيح المفقودة.
في ما يلي مثال على التعليمات البرمجية يوضح استخدام وظيفة وحدة المجموعات لقلب القاموس:
من مجموعات استيراد ديفولتديكت
مرسوم عكس (د):
مرسوم معكوس = حكم افتراضي (قائمة)
للمفتاح ، القيمة في د. العناصر():
مرسوم معكوس [قيمة].إلحاق (مفتاح)
عودة ديكت (مرسوم معكوس)
# Пример использования
بلدي مرسوم = {'أبل':':',
'الجزرة':''',
'الموز':''',
'البطاطا': 'potato'}
مرسوم معاكس = مرسوم معاكس
طباعة (مرسوم معكوس)
# Вывод:
# {'apple': ['التفاح' ، 'الموز']،':': ['الجزر' ، 'البطاطا']}
في هذا المثال ، نقوم بإنشاء دالة عكسيا تأخذ القاموس د كوسيطة وتعيد قاموسا جديدا حيث يتم تبديل مفاتيح وقيم القاموس الأصلي. للقيام بذلك ، نستخدم فئة ديفولتديكت مع المعلمة القائمة بحيث القيم في القاموس الجديد هي القوائم.
في ل حلقة ، نذهب من خلال أزواج قيمة المفتاح من القاموس الأصلي وإضافة كل مفتاح إلى القائمة المقابلة لقيمته في القاموس الجديد.
وأخيرا ، نعود القاموس الجديد عن طريق تحويله من كائن ديفولتديكت إلى القاموس العادي باستخدام وظيفة ديكت ().
بعد استدعاء وظيفة عكس مع قاموسنا الأصلي ، سوف نحصل على النتيجة التالية:
- مفاتيح 'التفاح' و 'الموز' لها قيمة 'الفاكهة'.
- مفاتيح 'الجزر' و 'البطاطا' لها قيمة 'الخضار'.
وبالتالي ، نتيجة للوظيفة ، نحصل على قاموس جديد يحتوي على مفاتيح وقيم القاموس الأصلي ، ولكن بترتيب عكسي.
باستخدام عكس ()
وظيفة عكس () وظيفة هو المدمج في وظيفة الثعبان التي تسمح لك لقلب عناصر القائمة أو سلاسل. عند تطبيقه على القاموس ، فإنه يعكس القيم والمفاتيح ، مما يسمح لنا بإنشاء قاموس جديد يتضمن أزواج قيمة المفتاح المقلوبة.
مثال على استخدام الدالة المعكوسة () لقلب القاموس:
د = {"تفاحة": 1 ، "موز": 2، "كرز": 3}
مرسوم معكوس = {القيمة: مفتاح للمفتاح ، القيمة معكوسة (د. العناصر())}
طباعة (مرسوم معكوس)
نتيجة تنفيذ التعليمات البرمجية:
{3: 'الكرز' ، 2: 'الموز' ، 1: 'التفاح'}
في هذا المثال ، أنشأنا قاموسا جديدا معكوسا باستخدام منشئ القاموس والوظيفة المعكوسة (). بعد تطبيق عكس() إلى العناصر() طريقة القاموس د ، قمنا بتسليم المفاتيح والقيم واستخدامها لإنشاء قاموس جديد. نتيجة لذلك ، حصلنا على قاموس تكون فيه المفاتيح هي القيم من القاموس الأصلي ، والقيم هي المفاتيح المقابلة.
يمكن أن تكون الوظيفة المعكوسة () مفيدة عندما نحتاج إلى إعادة تجميع البيانات بناء على قيم القاموس أو إنشاء قاموس عكسي للوصول السريع إلى المفاتيح حسب القيم.
أمثلة التعليمات البرمجية
فيما يلي أمثلة على التعليمات البرمجية توضح طرقا مختلفة لقلب القاموس في بايثون:
- طباعة (مرسوم معكوس)
Zip الرمز البريدي() и оператор распаковки:
'،'الموز':' cherry ' ، 'الكرز':'}'}