• 0

كيفية دمج قائمتين لتكوين قاموس في بايثون؟

لدي قائمتين بالشكل التالي:

keys = ['x', 'y', 'z']
values = ['abc', 123, True]

ما هي أسهل طريقة لإنتاج القاموس التالي من خلال القوائم السابقة؟

{'x': 'abc', 'y': 123, 'z': True}


 

1 شخص أعجب بهذا

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


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 2

يمكننا استخدام دالتين مساعدتين zip  و dict بالشكل التالي:

keys = ['x', 'y', 'z']
values = ['abc', 123, True]

zip_iterator = zip(keys, values) # تعيد pairs of elements

dictionary = dict(zip_iterator)  # تحويل لقاموس

print(dictionary)

 

3 اشخاص أعجبوا بهذا

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


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

في حالة أن ال keys أكثر من ال values يمكنك استخدام ال itertools.zip_longest حتى يمكنك استخدام ال fillvalue لتحديد قيمة لل values المتبقية كالتالي

from itertools import zip_longest
  
  
x =[1, 2, 3, 4, 5, 6, 7]
y =[8, 9, 10]
z = list(zip_longest(x, y, fillvalue ='_' ))
print(z)
#output 
#[(1, 8), (2, 9), (3, 10), (4, '-'), (5, '-'), (6, '-'), (7, '-' )]

 

1 شخص أعجب بهذا

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


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

هناك دائماً عدة طرق لعمل أي شيء في البرمجة ، وهناك طرق سهلة وأخرى صعبة

يمكنك إستخدام zip و dict أو zip_longest أو بكل بساطة يمكنك إنشاء دالة بنفسك لعمل ذلك كالآتي


#تحويل قائميتن الى قاموس
#بإستخدام حلقة
  
# تعريف القوائم
test_keys = ["Rash", "Kil", "Varsha"]
test_values = [1, 4, 5]
  
# طباعة القائمتين المفاتيح والقيم
print ("قائمة المفاتيح : " + str(test_keys))
print ("قائمة القيم: " + str(test_values))
  

# إستخدام حلقة لتحويل القوائم الى قاموس
res = {}
for key in test_keys:
    for value in test_values:
        res[key] = value
        test_values.remove(value)
        break  
  
# Printing resultant dictionary 
print ("القاموس الجديد : " +  str(res))

 

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


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

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

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

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


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

تسجيل الدخول

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


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