logo

كيفية فك القاموس في بيثون؟

القاموس عبارة عن مجموعة من قيمة المفتاح أزواج في بايثون. يمكن استخدام مفاتيح القاموس للوصول إلى قيمه. ومع ذلك، هناك أوقات تريد فيها استخراج أزواج القيمة الرئيسية وتعيينها للمتغيرات. هذا هو المكان الذي يأتي فيه تفريغ القاموس.

لتفريغ قاموس في بايثون، يمكنك استخدام بناء الجملة التالي:

اسم المستخدم
 my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} name, age, city = my_dict.values() print(name) print(age) print(city) 

انتاج:

 John 30 New York 

في هذا المثال، لدينا قاموس my_dict مع ثلاثة أزواج من القيمة الرئيسية. لاستخراج قيم القاموس وتخصيصها للمتغيرات نستخدم التابع قيم() طريقة القاموس. يتم تمثيل قيم القاموس في كائن يشبه القائمة التي ترجعها هذه الطريقة. ويتم تعيين القيم لاحقًا لمتغيرات محددة باستخدام عامل التفريغ (*). لأنه يطابق الترتيب الذي تظهر به القيم في قيم() الطريقة، فإن الترتيب الذي نعين به المتغيرات أمر بالغ الأهمية.

كن على علم بأن عدد المتغيرات وقيم القاموس يجب أن يتطابق. إذا حاولت فك قاموس يحتوي على متغيرات أكثر أو أقل من القيم، فستحصل على خطأ خطأ القيمة .

يمكنك أيضًا تفريغ قاموس إلى متغيرات مسماة باستخدام صيغة تفريغ القاموس:

 my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} name, age, city = my_dict['name'], my_dict['age'], my_dict['city'] print(name) print(age) print(city) 

انتاج:

 John 30 New York 

في هذا المثال، يمكننا الوصول إلى قيم القاموس باستخدام مفاتيحها وتخصيصها لمتغيرات مسماة. عندما تحتاج إلى استخراج قيم محددة من القاموس، فهذه الطريقة مفيدة.

وأخيرا، يمكنك استخدام ** المشغل أو العامل لتفريغ قاموس إلى وسيطات مسماة عند استدعاء دالة. على سبيل المثال:

 def print_person(name, age, city): print(f'{name} is {age} years old and lives in {city}') my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} print_person(**my_dict) 

انتاج:

 John is 30 years old and lives in New York 

في هذا المثال، نحدد دالة print_person وهذا يأخذ ثلاث حجج: الاسم والعمر ، و مدينة . بعد ذلك، نقوم بإنشاء قاموس my_dict تحتوي على قيم هذه الحجج. نحن نستخدم القاموس عامل التفريغ ** لتمرير قيم القاموس كوسائط مسماة إلى الوظيفة. والنتيجة هي نفس الدعوة print_person('جون', 30, 'نيويورك') .