في القسم السابق، تعرفنا على طرق القاموس، وفي هذا الفصل، سنتعرف على القواميس الهجينة، واجتياز القاموس، واشتقاق القاموس.
ما يسمى بالقاموس المختلط يعني أن البيانات المخزنة في القاموس عبارة عن خليط من أنواع مختلفة، ويجب أن تكون المفاتيح أنواع بيانات غير قابلة للتغيير، ولكن يمكن أن تكون القيم كائنات من أي نوع.
دعونا نلقي نظرة أولاً على القاموس المختلط:
my_dcit={'Xiao Ming': ['الارتفاع: 170 سم', 'الوزن: 65 كجم'], 'Xiao Li': 'أحب التعلم، أحب الرياضة'، 'Xiaohua': ('الإقامة: سوتشو'، 'مكان الميلاد: شنغهاي ')}
تتكون قيم هذا القاموس من قوائم وسلاسل وصفوف. يمكننا الوصول إلى هذا القاموس المختلط من خلال الطريقة الموضحة في القسم السابق. انظر إلى القطعة التالية من التعليمات البرمجية
my_dcit={'Xiao Ming': ['الارتفاع: 170 سم', 'الوزن: 65 كجم'], 'Xiao Li': 'أحب التعلم، أحب الرياضة'، 'Xiaohua': ('الإقامة: سوتشو'، 'مكان الميلاد: شنغهاي ')}print('مفتاح الوصول='شياو مينغ'->',my_dcit['شياو مينغ']) print('مفتاح الوصول='Xiaohua'->',my_dcit['Xiaohua'])print('مفتاح الوصول='Xiaohua'->',my_dcit['Xiaohua'])print('itmes() الطريقة:', my_dcit.items())#Access pr بشكل عام int('keys() الطريقة:',my_dcit.keys())# تم الوصول فقط إلى جميع مفاتيح الطباعة('values() الطريقة:',my_dcit.values())#تم الوصول فقط إلى valueprint('get() الطريقة:' ,my_dcit .get('Xiao Ming')) #get طريقة للوصول إلى المفتاح المحدد my_dcit.pop('Xiao Ming') # هذه الخطوة هي طريقة pop()، والتي ستحذف العناصر المقترنة بالمفتاح = 'Xiao Ming' print ('pop()طريقة My_dict بعد:',my_dcit)#تحقق من القاموس المحذوف
ألق نظرة على الإخراج:
مفتاح الوصول='شياو مينغ'->['الارتفاع: 170 سم', 'الوزن: 65 كجم'] مفتاح الوصول='شياو هوا'->حب التعلم وحب الرياضة مفتاح الوصول='شياوهوا'->('الإقامة: سوتشو', "مكان الميلاد: شنغهاي") طريقة itmes(): د ict_items([('شياو مينغ',['الطول: 170 سم','الوزن: 65 كجم']),('شياو لي','يحب التعلم والرياضة'),('شياوهوا',('الإقامة: سوتشو', 'مكان الميلاد: شنغهاي'))])طريقة المفاتيح (): د ict_keys(['Xiao Ming','Xiao Li','Xiao Hua'])values() الطريقة:dict_values([['الارتفاع: 170 سم','الوزن: 65 كجم'],'أحب التعلم، أحب الرياضة',( 'مكان الإقامة: سوتشو'،'ولد.' المكان: شنغهاي')]) طريقة get(): ['الارتفاع: 170 سم'، 'الوزن: 65 كجم'] my_dict بعد طريقة pop(): {'Xiao Li': 'أحب التعلم، أحب الرياضة'، 'Xiaohua': ("مكان الإقامة: سوتشو"، "مكان الميلاد: شنغهاي")}
عندما نستخدم القواميس، غالبًا ما نحتاج إلى اجتياز القاموس. وعادةً ما نستخدم حلقة for لاجتياز جميع المفاتيح الموجودة في القاموس.
دعونا نلقي نظرة على الوصول للاجتياز بشكل عام:
>>>my_dict={1001:'Xiaoming',1002:'Xiaohua',1003:'Xiaozhang'}>>>foriinmy_dict:print(i,my_dict[i])#مفتاح الإخراج والقيمة المقابلة للمفتاح 1001Xiao Ming 1002 شياو هوا 1003 شياو تشانغ
سنستخدم أيضًا طريقة items() للحصول على أزواج من العناصر عند الحصول على الكائن.
>>>my_dict={1001:'شياو مينغ',1002:'شياو هوا',1003:'شياو تشانغ'}>>>foriinmy_dict.items():print(i)(1001,'شياو مينغ')(1002) ،'شياوهوا')(1003،'شياو تشانغ')
طريقة الوصول هذه عبارة عن زوج من البيانات في القاموس المقابل، ويتم إخراج نتيجة الإخراج في شكل صف، وفي الوقت نفسه، يمكن الحصول على مفتاح وقيمة كل اجتياز مباشرة من خلال اجتياز الحلقة.
>>>my_dict={1001:'Xiao Ming',1002:'Xiao Hua',1003:'Xiao Zhang'}>>>fori,jinmy_dict.items():print('المفتاح المقابل:',i,'المطابق القيمة:'، ي) المفتاح المقابل: 1001 القيمة المقابلة: Xiao Ming المفتاح المقابل: 1002 القيمة المقابلة: Xiao Hua المفتاح المقابل: 1003 القيمة المقابلة: Xiao Zhang
وأخيرًا، تدرب على اجتياز القاموس من خلال التمارين.
لقد تعلمت عن اشتقاق القائمة من قبل. يشبه اشتقاق القائمة اشتقاق القائمة دون تقديم الكثير، لأن القواميس خاصة نسبيًا هنا سنشرح اشتقاق القاموس.
دعونا نلقي نظرة على الاستخدام البسيط أولاً.
>>>my_dict={i:'dotcpp'foriinrange(1,5)}>>>my_dict{1:'dotcpp',2:'dotcpp',3:'dotcpp',4:'dotcpp'}
هنا نلقي نظرة على بنية اشتقاق القاموس. الجزء الأول يعادل استخدام "dotcpp" لتعيين كائن القيمة لكل i. يمكننا أيضًا تحديد القائمة أولاً وتعيين القيمة في القائمة لها.
>>>my_list=[10,20,30,40,50]>>>my_dict={i:my_list[i]foriinrange(1,5)}>>>my_dict{1:20,2:30,3: 40,4:50}
انظر إلى الصورة أدناه:
عند استخدام اشتقاق القاموس، تكمن المشكلة الرئيسية في مطابقة المفاتيح والقيم. بعد أن نتعلم الوظيفة لاحقًا، يمكننا استخدام وظيفة zip() لدمج القواميس بشكل أكثر ملاءمة، ولن نقدمها كثيرًا هنا.
يطلب من المستخدم إدخال إجمالي الأصول، على سبيل المثال: 3000، ثم يتم عرض قائمة سلة التسوق، ويتم حساب إجمالي مبلغ الأصناف الموجودة في سلة التسوق، إذا كان إجمالي عدد الأصناف أكبر من إجمالي الأصول، سيطالبك بأن رصيد الحساب غير كافٍ، وإلا فإن عملية الشراء ناجحة. قائمة عربات التسوق هي كما يلي: العربات=[{الاسم: سرير، السعر: 1999، "num": 1}، {name: وسادة، السعر: 10، " num": 2}، {name: لحاف، السعر: 20، "عدد": 1}].
الحل في النهاية.
القواميس هي بنية بيانات شائعة الاستخدام نسبيًا عند تعلم لغة بايثون، ومع ذلك، نظرًا لتفردها، قد تكون هناك كلمات قليلة نسبيًا حول القواميس في أسئلة المنافسة، ولكن يمكننا استخدام القواميس لمساعدتنا عند تخزين البيانات العثور على البيانات المقابلة بدقة، وإتقان القوائم والقواميس بكفاءة يمكن أن يساعدنا على تعلم بايثون بشكل أفضل.
عربات=[{name:bed,price:1999,"num":1},{name:pillow,price:10,"num":2},{name:quilt,price:20,"num":1} ]. m=int(input())sum=0foriinrange(len(carts)):sum=carts[i]['price']*carts[i]['num']+sumifm>=sum:print('تم الشراء بنجاح ')else:print('رصيد الحساب غير كافٍ')