• 0

كيف أحول tuple إلى قاموس بطريقة عكسية في بايثون؟

أملك tuple التالي:

t = ((1, 'a'),(2, 'b'))

وعند تنفيذ السطر التالي لتحويله إلى قاموس:

dict(t)

أحصل على هذا القاموس:

{1: 'a', 2: 'b'}

فهل هنالك طريقة للحصول على قاموس بشكل معكوس؟ كالتالي:

{'a': 1, 'b': 2}

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

جميع الطرق لفعل ذلك تشترك في أنه يجب عكس محتويات tuple عن طريق إحدى حلقات التكرار ومن ثم استخدام dict للتحويل إلى قاموس، فمثلا استخدمنا في مثالنا هذا حلقة تكرار for للدوران حول جميع عناصر tuple وعكس محتويات كل عنصر:

>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}

أما في مثالنا التالي فقد قمنا باستخدام حلقة التكرار map ودالة reversed لعكس المحتويات قبل أن نحولها إلى dict:

>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}

هنالك طرق أخرى، لكن هذه الأقصر والأبسط حيث أنها تتكون من سطر واحد فقط.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن