اذهب إلى المحتوى

السؤال

نشر

أريد أن أقوم بعمل قاموس يحتوي على بعض العناصر كالتالي:

{2:True, 1:False, 4:None, 3:”Hi”}

ومن المفترض أن يتم تحويله إلى التالي:

{1:False, 2:True, 3:”Hi”, 4:None}

حاولت البحث عن حل لهذه المشكلة أكثر من مرة ولكن كل الحلول التي وجدها تستخدم الدالة sorted التي تقوم بإعادة tuple وليس قاموس dictionary

Recommended Posts

  • 1
نشر

بداية نقوم بانشاء قاموس ليكن اسمه D1

D1 = {2:3, 1:89, 4:5, 3:0}

ثم نقوم بانشاء قاموس فارغ

sort_dic = {}

ثم نقوم بعمل حلقة تكرار على القاموس الأول وهو مرتب بناء على ال key, وبداخل الحلقة نقوم بعمل update للقاموس الفارغ بتعديل قيمه كالتالي

for i in sorted(D1):
     sort_dic.update({i:D1[i]})

 لو حاولنا طباعة القاموس بعد الترتيب سوف يكون الشكل كالتالي

print(sort_dic)


#{1: 89, 2: 3, 3: 0, 4: 5}

 

  • 0
نشر

يمكنك أن تستعمل الكائن OrderedDict الموجود في مكتبة collections حيث يقوم بترتيب كل عناصر القاموس بالشكل التالي:

>>> import collections
>>> x = {2:True, 1:False, 4:None, 3:"Hi"}
>>> sortedX = collections.OrderedDict(sorted(d.items()))
>>> sortedX
OrderedDict([(1, False), (2, True), (3, 'Hi'), (4, None)])
>>> sortedX[1]
False
>>>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...