البرمجة

صيانة ترتيب القوائم عند تحويلها إلى قواميس في Python

في البداية، يجدر بنا فهم العملية التي تقوم بها عند تحويل القائمة إلى قاموس في لغة البرمجة باستخدام الكود الذي قدمته. يستخدم الكود dic=dict(List) لتحويل القائمة إلى قاموس. ومن المهم أن نعلم أن ترتيب العناصر في القائمة لا يضمن بالضرورة أن يتم الحفاظ على نفس الترتيب عند تحويلها إلى قاموس.

القاموس في لغة البرمجة هو هيكل بيانات يستخدم لتخزين القيم مع مفاتيح مرتبطة بها. وفي حالة استخدام dict() لتحويل القائمة، قد يتم فقدان الترتيب لأن القواميس في Python 3.7 وأحدث يحتفظون بالترتيب أثناء الإضافة ولكنهم لا يضمنون الحفاظ على الترتيب أثناء الطباعة.

لحل هذه المشكلة وضمان الحفاظ على الترتيب، يمكن استخدام collections.OrderedDict() بشكل صحيح. يجب عليك تمرير القائمة كمدخلات مفردة لـ OrderedDict() بدلاً من استخدام dict().

الكود الصحيح يكون كالتالي:

python
import collections List = [('The', 'DT'), ('study', 'NN'), ('guide', 'NN'), ('does', 'VBZ'), ('not', 'RB'), ('discuss', 'VB'), ('much', 'JJ'), ('of', 'IN'), ('the', 'DT'), ('basics', 'NNS'), ('of', 'IN'), ('ethics.', 'NN')] dic = collections.OrderedDict(List) print(dic)

بهذا الشكل، سيتم الحفاظ على الترتيب كما هو في القائمة عند طباعة القاموس. يتم استخدام OrderedDict() لضمان الحفاظ على الترتيب الأصلي للعناصر.

المزيد من المعلومات

تحويل القوائم إلى قواميس يعد جزءًا أساسيًا من البرمجة، وفهم كيفية التعامل مع هذه العملية يعزز من قدرة المبرمج على التحكم في البيانات والتلاعب بها بشكل فعّال. في سياقك، لدينا قائمة List التي تحتوي على أزواج مفتاح وقيمة، ونريد تحويلها إلى قاموس.

استخدمت collections.OrderedDict() لأنه يحتفظ بترتيب العناصر كما تم إضافتها إلى القاموس، وهو أمر مهم خاصةً إذا كنت تعتمد على ترتيب محدد. إلا أنه يجب فهم أن OrderedDict() يحتفظ بالترتيب فقط أثناء الإضافة، ولا يتأثر بترتيب القاموس عند الطباعة.

علاوة على ذلك، يمكنك أيضًا استخدام دالة sorted() لفرز القائمة بناءً على الأولويات المعينة. على سبيل المثال:

python
import collections List = [('The', 'DT'), ('study', 'NN'), ('guide', 'NN'), ('does', 'VBZ'), ('not', 'RB'), ('discuss', 'VB'), ('much', 'JJ'), ('of', 'IN'), ('the', 'DT'), ('basics', 'NNS'), ('of', 'IN'), ('ethics.', 'NN')] sorted_list = sorted(List, key=lambda x: List.index(x)) dic = collections.OrderedDict(sorted_list) print(dic)

في هذا المثال، تم استخدام sorted() مع تعريف وظيفة مفتاح key لفرز القائمة بناءً على ترتيب العناصر في القائمة الأصلية. ثم تم استخدام OrderedDict() لتحويل القائمة المفرَّغة إلى قاموس.

إذا كنت تحتاج إلى استخدام القاموس للعمليات اللاحقة، يمكنك الوصول إلى القيم باستخدام المفاتيح كما هو معتاد في لغة البرمجة Python.

زر الذهاب إلى الأعلى