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

السؤال

نشر

السلام عليكم

هو انا ازي اقدر احفظ بيانات اكثر من شخصه في قاموس واحد  والا اعمل قاموس لكل شخصه الان القاموس عبار عن مفتاح وقيمه فا لو المفتاح مثل الاسم الاول كده يعني خالص هيتخزين في اسم واحد فقط والا اي؟

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته .

نعم لا يمكن وضع أكثر من مفتاح بنفس القيمة في القاموس حيث سيتم أخذ فقط أخر قيمة تم كتابتها.

وهذا بسبب أن القاموس (dict) هو عبارة عن نوع من أنواع الـ hash table حيث أن الـ hash table هو هيكل بيانات يستخدم دالة تجزئة (hash function) لتحويل المفاتيح إلى قيم عددية تُستخدم كعناوين في جدول البيانات و هذا يسمح بالبحث السريع والوصول الفوري تقريبًا إلى العناصر بناءً على المفاتيح.

فمثلا لو لدينا مفتاحي يسمي first_name فستقوم الدالة hash function والتي يستخدمها القاموس في تحويل first_name إلى قيمة ثابتة يتم تخزينها في ال memory (الذاكرة) وبهذا إذا تم إستخدام first_name مجددا فإن تلك الدالة ستقوم بتحويله إلى قيمة ثابتة وبما أنها نفس القيمة فسيتم إعادة كتابة القيمة في ال memory وبهذا يصبح لدينا في ال memory أخر قيمة للمفتاح first_name .

dic = { 
    "first_name ":"ahmed",
    "first_name ":"mohamed"
}
print(dic) #{'first_name ': 'mohamed'} 

لاحظ في المثال السابق ستجد أن قيمة المفتاح first_name هي أخر قيمة تم كتابتها.

ولذلك يفضل إنشاء متغير جديد لحمل بيانات الشخص الجديد أو إنشاء قائمة تحوي جميع الأشخاص .

ولكن توجد عدة طرق أخري لحفظهم في متغير واحد كالتالي مثلا:

people = {
    0: {
        "first_name": "Ahmad",
        "last_name": "Ali",
    },
    1: {
        "first_name": "Ali",
        "last_name": "Mohamed",
        "age": 25
    },
    2: {
        "first_name": "Mahmoud",
        "last_name": "Ahmad",
    }
}
print(people)

هنا لاحظ كيف وضعنا مفتاح عددي فالشخص الأول مفتاحه هو 0 ويوجد بداخله جميع بياناته.

 

  • 0
نشر
بتاريخ 4 دقائق مضت قال محمد عاطف17:

وعليكم السلام ورحمة الله وبركاته .

نعم لا يمكن وضع أكثر من مفتاح بنفس القيمة في القاموس حيث سيتم أخذ فقط أخر قيمة تم كتابتها.

وهذا بسبب أن القاموس (dict) هو عبارة عن نوع من أنواع الـ hash table حيث أن الـ hash table هو هيكل بيانات يستخدم دالة تجزئة (hash function) لتحويل المفاتيح إلى قيم عددية تُستخدم كعناوين في جدول البيانات و هذا يسمح بالبحث السريع والوصول الفوري تقريبًا إلى العناصر بناءً على المفاتيح.

فمثلا لو لدينا مفتاحي يسمي first_name فستقوم الدالة hash function والتي يستخدمها القاموس في تحويل first_name إلى قيمة ثابتة يتم تخزينها في ال memory (الذاكرة) وبهذا إذا تم إستخدام first_name مجددا فإن تلك الدالة ستقوم بتحويله إلى قيمة ثابتة وبما أنها نفس القيمة فسيتم إعادة كتابة القيمة في ال memory وبهذا يصبح لدينا في ال memory أخر قيمة للمفتاح first_name .

dic = { 
    "first_name ":"ahmed",
    "first_name ":"mohamed"
}
print(dic) #{'first_name ': 'mohamed'} 

لاحظ في المثال السابق ستجد أن قيمة المفتاح first_name هي أخر قيمة تم كتابتها.

ولذلك يفضل إنشاء متغير جديد لحمل بيانات الشخص الجديد أو إنشاء قائمة تحوي جميع الأشخاص .

ولكن توجد عدة طرق أخري لحفظهم في متغير واحد كالتالي مثلا:

people = {
    0: {
        "first_name": "Ahmad",
        "last_name": "Ali",
    },
    1: {
        "first_name": "Ali",
        "last_name": "Mohamed",
        "age": 25
    },
    2: {
        "first_name": "Mahmoud",
        "last_name": "Ahmad",
    }
}
print(people)

هنا لاحظ كيف وضعنا مفتاح عددي فالشخص الأول مفتاحه هو 0 ويوجد بداخله جميع بياناته.

 

اه يعني انا اقدر اعمل قاموس وحوه قاموس برد 

تمام 

الف شكرااا لحضراتك جدا 

حزاك الله كل خير

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...