قواميس بايثون المتداخلة: الدليل الكامل

0

قواميس بايثون المتداخلة: الدليل الكامل تعلم بايثون,بايثون,بايثون برنامج,اسهل كورس بايثون,بايثون موبايل,بايثون بالعربي,البايثون,البرمجة بلغة بايثون,شرح بايثون,بايثون ويب,لغة بايثون,أساسيات بايثون,تعلم الآلية,حل مشكلة البقع الملونه والخطوط,حل عطل الشاشه الملونه,حل مشكلة الشاشه الملونه,المطورون العرب,تحليل البيانات,اصلاح الوان الشاشه,ظهور الوان علي شاشه التلفون,الهاتف سقط وتغيرت الوان الشاشه,اصلاح شاشة الجوال,ظهو خطوط على شاشة الهاتف الايفون,خورزميات تعلم الآلة,الملفات

 
في هذا الدرس سنتعرف على قواميس بايثون المتداخلة، القواميس التي تمثل قيم قاموس آخر، ستتعلم كيفية إنشاء قواميس متداخلة والوصول إلى عناصرها وتعديلها والمزيد، ستتعلم أيضًا كيفية العمل مع القواميس المتداخلة لتحويلها إلى إطار بيانات Pandas.

مع نهاية هذا الدرس سنكون قد تعلمنا:

  • ما هي القواميس المتداخلة في بايثون
  • كيفية إنشاء قواميس متداخلة في بايثون
  • كيفية الوصول إلى العناصر وتعديلها وحذفها في القواميس المتداخلة
  • كيفية تحويل القواميس المتداخلة إلى إطار بيانات Pandas

القواميس المتداخلة في بايثون

قواميس بايثون عبارة عن حاوية هياكل بيانات تحتوي على مفاتيح وقيم يتم إنشاؤها باستخدام الأقواس المتعرجة {} حيث يمكن البحث عن قيمة من خلال الوصول إلى مفتاحها، دعونا نلقي نظرة على مثال بسيط من القاموس:

# قاموس بايثون بسيط user = { 'Name': 'Ahmed', 'Profession':'Geek' }

في القاموس أعلاه لدينا عنصر يسمى user. يمكننا الوصول إلى قيمه من خلال الرجوع إلى مفاتيح القاموس، لنفترض أننا أردنا الوصول إلى قيمة القاموس للمفتاح'Name"  يمكننا كتابتها
# الوصول إلى قيمة القاموس print(user.get('Name')). # same as user['Name'] # Returns: Ahmed

الشيء المثير للاهتمام في قواميس بايثون هو أنه يمكننا استخدام قواميس أخرى كقيم لقاموس أخر و هذا يقودنا إلى الموضوع الرئيسي لهذه المقالة.
لنفترض أننا أنريدالحصول على قاموس يحتوي على معلومات المستخدم بناءً على معرف المستخدم الخاص بشخص ما، دعونا ننشئ قاموسًا يخزن المعلومات على عدة مستخدمين مقسمًا حسب المعرف:
# فهم القواميس المتداخلة users = { 1: { 'Name': 'Ahmed', 'Profession':'geek' }, 2: { 'Name': 'Omar', 'Profession': 'writer' } }
في هذا المثال قمنا بتضمين قاموسنا السابق في القاموس الجديد الأكبر حجمًا، ما فعلناه هو إنشاء قاموس جديد متداخل و هذا ما سنتكلم عنه في القسم التالي بشكل متعمق.

إنشاء القواميس المتداخلة في بايثون

في هذا الجزء سنتعلم كيفية إنشاء قواميس متداخلة وهي قواميس لها قاموس آخر عبارة عن قيمة للقاموس الأولن دعنا نتعرف على كيفية إنشاء قواميس بايثون المتداخلة.
# إنشاء قاموس بايثون متداخل users = {} Ahmed = { 'Name': 'Ahmed', 'Profession':'Geek' } Kate = { 'Name': 'Omar', 'Profession': 'Writer' } users[1] = Ahmed users[2] = Omar print(users) # Returns: {1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Writer'}}
مالذي قمنا به ؟
  1. قمنا بإنشاء قاموس فارغ تحت إسم  users 
  2. أنشأنا قاموسين آخرين  Ahmed وOmar 
  3. ثم قمنا بتعيين هذه القواميس لتكون قيم المفاتيح 1 و 2  في قاموس users 

 الوصول إلى عناصر قواميس المتداخلة في بايثون 

في هذا الجزء سنتعلم كيفية الوصول إلى العناصر في قاموس بايثون المتداخل، في جزء سابق استخدمنا طريقة .get () للوصول إلى العناصر أما الأن دعونا نرى ما يحدث عندما نحاول الوصول إلى عنصر في قاموس متداخل: 

 

يمكننا أن نرى أنه قد تحصلنا على قاموس وبما أننا تحصلنا على هذا الأخير يمكننا الوصول إلى عناصر القاموس أيضا.

لنفترض أننا نريد الوصول إلى "اسم" المستخدم 1 ، فيمكننا كتابة ما يلي:

# الوصول إلى العناصر المتداخلة في قواميس بايثون
users = {
    1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 
    2: {'Name': 'Omar', 'Profession': 'Writer'}
    }

print(users.get(1).get('Name'))

# Returns: Ahmed 

تعديل العناصر في القواميس المتداخلة في بايثون

في هذا لجزء ستتعلم كيفية تعديل العناصر في القواميس المتداخلة و من أجل ذلك نستخدم نفس العملية التي نستخدمها لإعداد عنصر جديد في القاموس. 
لنفترض أننا نريد تغيير مهنة المستخدم 2 إلى  "abitat for Humanity" و يمكننا فعل ذلك :

# تعديل القاموس المتداخل
users = {
    1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 
    2: {'Name': 'Omar', 'Profession': 'Writer'}
    }

users[2]['Profession'] = 'Habitat for Humanity'
print(users)

# Returns: 
# {1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Habitat for Humanity'}}

حذف العناصر في القواميس المتداخلة في بايثون

تستخدم قواميس بايثون الكلمة الأساسية del لحذف المفتاتيح و القيم، و للقيام بذلك في قاموس متداخل نحتاج التعمق أكثر في القاموس، دعونا نرى كيف يمكننا حذف مفتاح "Profession" من القاموس 1:
# حذف عنصر من قاموس متداخل users = { 1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Writer'} } del users[1]['Profession'] print(users) # Returns: # {1: {'Name': 'Ahmed'}, 2: {'Name': 'Omar', 'Profession': 'Writer'}}

كما يمكننا حذف قاموس متداخل بالكامل باستخدام نفس الطريقة، نظرًا لأن القاموس المتداخل هو في الواقع مجرد مفتاح أو قيمة في قاموسنا الكبير، لنحذف القاموس الأول بالكامل 1:

# حذف قاموس متداخل بالكامل users = { 1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Writer'} } del users[1] print(users) # Returns: # {2: {'Name': 'Omar', 'Profession': 'Writer'}}

التكرار من خلال القواميس المتداخلة في بايثون

في هذا الجزء سنتعلم كيفية التكرار من خلال القواميس المتداخلة، و يمكن أن يفيدك هذا عندما تريد طباعة القيم في القاموس:

# التكرار من خلال القواميس المتداخلة users = { 1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Writer'} } def iterate_dict(dict_to_iterate): for key, value in dict_to_iterate.items(): if type(value) == dict: print(key) iterate_dict(value) else: print(key + ":" + value) iterate_dict(users) # Returns: # 1 # Name:Ahmed # Profession:Geek # 2 # Name:Omar # Profession:Writer

تحويل قاموس بايثون متداخل إلى  إيطار بيانات Pandas

في هذا الجزء الأخير سنتعلم كيفية تحويل قاموس متداخل إلى إيطار بيانات Pandas، يمكننا تمرير القاموس المتداخل إلى دالة DataFrame ().
import pandas as pd users = { 1: {'Name': 'Ahmed', 'Profession': 'Geek'}, 2: {'Name': 'Omar', 'Profession': 'Writer'} } df = pd.DataFrame(users).T print(df) # Returns # Name Profession # 1 Ahmed Geek # 2 Omar Writer

إلى هنا أكون قد إنتهيت من هذا الدرس وتعرفنا من خلاله على القواميس المتداخلة في بايثون، تعلمنا كل من القواميس المتداخلة ثم تعلمنا كيفية الوصول إلى عناصرها وتعديلها وحذفها. أخيرًا تعلمنا كيفية التكرار على القواميس المتداخلة وكذلك كيفية قراءتها في Pandas DataFrames.

لا يوجد تعليقات

أضف تعليق