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

كيفية الحصول على key من قاموس من خلال value في بايثون؟

Adam Ebrahim

السؤال

لدي قاموس بالشكل التالي:

{'Adam': 18, 'Ebrahim' : 19}

كيف أحصل على كلمة Adam من خلال البحث عن القيمة 18

بفرض أن القيم Values يمكن أن تتكرر، أي يصبح لأكثر من مفتاح نفس القيمة.

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

Recommended Posts

  • 1

يمكننا فعل ذلك من خلال تخزين الValues في list وال keys في list , لاحظ الكود التالي مع الشرح 

Mydict ={"Adam": 18, "Ebrahim" : 19}#الفاموس الخاص بنا
keys = list(Mydict.keys()) #نخزن جميع المفاتيح في قائمة
vals = list(Mydict.values())#نخزن جميع القيم في قائمة أخرى
myVal = vals.index(18)#نقوم بالبحث عن قيمة محددة
print(keys[myVal])#نبحث عن القيمة السابقة في قائمة المفاتيح

 

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

  • 0

يُمكنك الوصول إلى ما تريد بإستخدام حلقة للمرور على كافة المفاتيح و التحقق من القيمة إن كانت مُساوية للقيمة المطلوبة نقوم بتخزين المفتاح الموافق لها بهذا الشكل:

my_dict = {
    "Adam" : 18,
    'Ebrahim' : 19,
    "Samir" : 18,
    "Moahamed" : 30
}

wanted_keys = [key for key in my_dict.keys() if 18 == my_dict[key]]
print(wanted_keys) # ['Adam', 'Samir']
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لدي طريقة أخرى جميلة للقيام بذلك سأشاركها، تعتمد على عكس القاموس أي نجعل القيم مفاتيح والعكس.
نعرف تابع يقبل قاموس d وقيمة val ثم يقوم بعكس هذا القاموس (جعل القيم مفاتيح والمفاتيح قيم) ثم يبحث في القاموس الجديد عن القيمة val بالطريقة الاعتيادية ويردها لنا كالتالي:

# نعرف تابع يقوم بالمطلوب
def get_keys_from_value(d, val):
    reverse_dict = dict([(value, key) for key, value in d.items()])  # نجعل المفاتيح قيم والقيم مفاتيح
    return reverse_dict[val]
# تعريف القاموس
your_dict={'Adam': 18, 'Ebrahim' : 19}
# البحث عن طريق التابع الذي عرفناه
print(get_keys_from_value(your_dict, 18)) # Adam

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...