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

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

Adam Ebrahim

السؤال

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

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

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

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


 

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

Recommended Posts

  • 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)

 

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

  • 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, '-' )]

 

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

  • 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))

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...