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

هل يمكنك تجميد قاموس في بايثون؟

تم النشر بتاريخ 2024-11-03
تصفح:231

 Can You Freeze a Dictionary in Python?

هل "الإملاء المجمد" ممكن في بايثون؟

لقد كان مفهوم "الإملاء المجمد" موضوعًا للمناقشة داخل مجتمع بايثون. على الرغم من أن بايثون لا توفر إملاءًا مجمدًا مدمجًا، فقد ظهرت العديد من الحلول لتلبية الحاجة إلى قاموس غير قابل للتغيير وقابل للتجزئة.

أحد الأسباب الشائعة للرغبة في الإملاء المجمد هو حفظ استدعاءات الوظائف باستخدام وسائط غير معروفة. يتضمن الأسلوب النموذجي تحويل الوسيطات إلى صف باستخدام tuple(sorted(kwargs.items()))، والاعتماد على استقرار الفرز للبحث في جدول التجزئة.

للحصول على نهج أكثر شمولاً، فكر في فئة FrozenDict التالية:

import collections

class FrozenDict(collections.Mapping):
    ...

توفر هذه الفئة طرقًا للتكرار، وتحديد الطول، واسترجاع العناصر، وحساب التجزئة، مما يضمن أنه يتصرف مثل القاموس القياسي ويدعم التجزئة.

من الناحية العملية، يعمل FrozenDict بكفاءة :

x = FrozenDict(a=1, b=2)
y = FrozenDict(a=1, b=2)
print(x is y, x == y, x == {'a': 1, 'b': 2})
d = {x: 'foo'}
print(d[y])  # 'foo'

من خلال توفير تطبيق مخصص، يسمح FrozenDict بقواميس غير قابلة للتغيير وقابلة للتجزئة في Python، مما يوسع إمكانيات التعامل مع الكائنات وتحسين الذاكرة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3