لماذا ترتيب القاموس غير حتمي في Python 3.3؟
في إصدارات Python السابقة للإصدار 3.3، كان ترتيب مفاتيح القاموس عشوائيًا ولكن ثابت. ومع ذلك، في Python 3.3، أصبح هذا الترتيب غير حتمي.
ينتج هذا التغيير عن إصلاح أمني تم تنفيذه في عام 2012 وتم تمكينه افتراضيًا في Python 3.3. العشوائية التجزئة، المقدمة لمعالجة الثغرات الأمنية، تتسبب في عدم القدرة على التنبؤ بترتيب التكرار للقواميس والمجموعات والاختلاف عبر تشغيل بايثون.
لتعطيل العشوائية التجزئة، يمكنك تعيين متغير البيئة PYTHONHASHSEED إلى 0.
مثال غير بديهي
بينما المثال المضاد في السؤال لا يؤدي دائمًا إلى نفس النتيجة في Python 3.3، حيث أن العدد المحدود من الطلبات المختلفة ينبع من التعامل مع تصادمات التجزئة.
لم يعد هذا القيد موجودًا في Python 3.6 والإصدارات الأحدث، حيث يكون ترتيب الإدراج لـ القواميس محفوظة دائمًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3