تقنية

OrderedDict في بايثون: هل move_to_end تنقل دائمًا إلى النهاية؟

last=False: ترتيب leaf,bud,seed.
False: البداية.

move_to_end تنقل مفتاحًا موجودًا إلى أحد الطرفين؛ last تختار الطرف. [1]

الخلاصة السريعة

لا؛ last=False تنقله إلى البداية. [1]

  • move_to_end تنقل مفتاحًا موجودًا إلى أحد الطرفين؛ last تختار الطرف. [1]
  • last=True هي الافتراضية وتنقل إلى النهاية؛ False تنقل إلى البداية؛ المفتاح وقيمته ينتقلان معًا. [1]
  • على CPython 3.12.14، نبدأ بترتيب bud,leaf,seed وقيم 7،9،11؛ نقل leaf مع last=False يعطي leaf,bud,seed. [1]
  • في نسخة أخرى من البداية، نقل leaf دون last يعطي bud,seed,leaf؛ قيمة leaf تبقى 9 في النسختين. [1]
  • تحكم: نقل stone الغائبة يثير KeyError؛ تبقى أزواج النسخة الأولى كما كانت؛ لم نحذف أي زوج في النقل الناجح. [1]

اسم وطرفان

move_to_end تنقل مفتاحًا موجودًا إلى أحد الطرفين؛ last تختار الطرف. [1]

اختيار الطرف

last=True هي الافتراضية وتنقل إلى النهاية؛ False تنقل إلى البداية؛ المفتاح وقيمته ينتقلان معًا. [1]

نقل إلى البداية

على CPython 3.12.14، نبدأ بترتيب bud,leaf,seed وقيم 7،9،11؛ نقل leaf مع last=False يعطي leaf,bud,seed. [1]

from collections import OrderedDict left=OrderedDict(bud=7,leaf=9,seed=11) left.move_to_end("leaf",last=False) print(list(left.items())) [1]

النقل الافتراضي: ترتيب bud,seed,leaf.
افتراضي: النهاية.

النهاية والتحكم

في نسخة أخرى من البداية، نقل leaf دون last يعطي bud,seed,leaf؛ قيمة leaf تبقى 9 في النسختين. [1]

right=OrderedDict(bud=7,leaf=9,seed=11) right.move_to_end("leaf") print(list(right.items())) [1]

تحكم: نقل stone الغائبة يثير KeyError؛ تبقى أزواج النسخة الأولى كما كانت؛ لم نحذف أي زوج في النقل الناجح. [1]

المراجع

  1. Python OrderedDict

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.