قاموس بايثون: كل ما تريد معرفته [مع أمثلة]

نشرت: 2020-04-14

إذا كنت تعمل باستخدام Python ، فلا بد أنك سمعت عن القوائم ، والسلاسل النصية ، والصفوف tuple. اليوم ، سنتحدث عن عنصر مهم آخر في Python - القاموس. بعد الانتهاء من قراءة هذا المنشور ، يجب أن يكون لديك فهم جيد نسبيًا لقواميس Python وكيفية إنشائها وكيفية استخدامها.

جدول المحتويات

ما هو قاموس بايثون؟

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

في قاموس Python ، تكون المفاتيح فريدة ، لكن القيم قد تكون أو لا تكون - بينما يجب أن تكون المفاتيح من نوع بيانات غير قابل للتغيير (سلاسل وأرقام وجداول) ، يمكن أن تكون القيم من أي نوع. أيضًا ، في قاموس Python ، تكون المفاتيح حساسة لحالة الأحرف. لذلك ، المفاتيح التي تحمل نفس الاسم ، ولكن يتم التعامل مع الحالات المختلفة بشكل مختلف.

تعرف على المزيد حول: أنواع بيانات بايثون

القاموس مقابل القوائم

في بايثون ، تشترك القواميس والقوائم في أوجه التشابه والاختلاف. تشمل السمات المشتركة بين القواميس والقوائم ما يلي:

  • إنها قابلة للتغيير.
  • إنها ديناميكية.
  • يمكن أن تتداخل - يمكن أن تحتوي القائمة على قائمة أخرى ويمكن أن يحتوي القاموس على قاموس آخر. أيضًا ، يمكن أن تحتوي القائمة على قاموس والعكس صحيح.

يتمثل الاختلاف الرئيسي بين القواميس والقوائم في أنه بينما يمكن الوصول إلى عناصر القائمة (بناءً على موضعها في القائمة) عبر الفهرسة ، يتم الوصول إلى عناصر القاموس عبر المفاتيح.

قاموس بايثون - طرق

الآن ، سنناقش بعض الطرق الأكثر استخدامًا في قواميس بايثون.

  • نسخة () - تقوم بإرجاع نسخة ضحلة من القاموس.
  • clear () - يزيل كل العناصر من القاموس.
  • type () - تقوم بإرجاع نوع المتغير الذي تم تمريره.
  • pop () - يقوم بإزالة عنصر وإرجاعه من القاموس بعد توفير المفتاح.
  • popitem () - يزيل ويعيد عنصرًا عشوائيًا (مفتاح ، قيمة). كما أنه يرفع KeyError إذا كان القاموس فارغًا.
  • get () - يتم استخدامه للوصول إلى قيمة مفتاح.
  • items () - تقوم بإرجاع طريقة عرض جديدة لعناصر القاموس (مفتاح ، قيمة).
  • str () - تقوم بإنشاء تمثيل سلسلة قابل للطباعة من القاموس.
  • pop (مفتاح [، د]) - يزيل العنصر الذي يحتوي على مفتاح ويعيد قيمته ، وإذا لم يتم العثور على المفتاح ، فإنه يُعيد d . ومع ذلك ، إذا لم يتم توفير d ولم يتم العثور على المفتاح ، فسيتم إرجاع KeyError .
  • get (مفتاح [، د]) - تقوم بإرجاع قيمة المفتاح. إذا كان المفتاح غير موجود ، فإنه يعيد d (الافتراضي إلى بلا ).
  • fromkeys (seq [، v]) - يقوم بإرجاع قاموس جديد بمفاتيح من seq والقيمة تساوي v (افتراضيات إلى None ).
  • update ([other]) - يقوم بتحديث القاموس بأزواج المفاتيح / القيمة من الآخر عن طريق الكتابة فوق المفاتيح الموجودة.

كيف تصنع قاموس؟

يمكنك إنشاء قاموس Python من خلال تضمين قائمة مفصولة بفواصل لأزواج القيمة والمفتاح بأقواس معقوفة {}. تفصل النقطتان ":" كل مفتاح عن القيمة المرتبطة به:

د = {

<مفتاح>: <قيمة> ،

<مفتاح>: <قيمة> ،

.

.

.

<مفتاح>: <قيمة>

}

يمكنك أيضًا استخدام الوظيفة المضمنة ديكت () لإنشاء قاموس ، مثل:

# قاموس فارغ

my_dict = {}

# قاموس مع مفاتيح عدد صحيح

my_dict = {1: "تفاحة" ، 2: "كرة"}

# قاموس مع مفاتيح مختلطة

my_dict = {'name': 'John'، 1: [2، 4، 3]}

# باستخدام ديكت ()

my_dict = ديكت ({1: 'تفاحة'، 2: 'كرة'})

# من تسلسل وجود كل عنصر كزوج

my_dict = ديكت ([(1، "تفاحة")، (2، "كرة")])

كيفية الوصول إلى العناصر من القاموس؟

للوصول إلى عنصر من قاموس ، يجب أن تشير إلى اسم مفتاحه. يمكنك استخدام طريقة get () لاسترداد العنصر ، أو يمكنك ذكر اسم المفتاح داخل قوس مربع []. إذا لم يتم العثور على مفتاح في القاموس ، فإن طريقة get () ترجع None بدلاً من KeyError.

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

#! / usr / bin / python

dict = {'Name': 'Zara'، 'Age': 7، 'Class': 'First'}

طباعة “ديكت ['الاسم']:“ ، ديكت ['الاسم']

طباعة “ديكت ['العمر']:“ ، ديكت ['العمر']

كيف تضيف أو تغير العناصر في القاموس؟

نظرًا لأن قواميس Python قابلة للتغيير ، يمكنك إضافة عناصر أو حتى تغيير قيم العناصر الموجودة في القاموس. يمكن إضافة العناصر إلى القاموس بعدة طرق. ومع ذلك ، يمكنك إضافة قيمة واحدة إلى القاموس في وقت واحد عن طريق تعريفها مع مفتاحها.

على سبيل المثال ، ديكت [مفتاح] = "قيمة". لتحديث قيمة موجودة في القاموس ، يجب عليك استخدام طريقة التحديث () المضمنة . يجب أن تتذكر أنه أثناء إضافة قيمة إلى القاموس إذا كانت القيمة موجودة بالفعل ، يتم تحديث القيمة وإلا فسيتم إضافة مفتاح جديد بالقيمة إلى القاموس.

my_dict = {'name': 'Jack'، 'age': 26}

# قيمة التحديث

my_dict ['age'] = 27

#Output: {'age': 27، 'name': 'Jack'}

طباعة (my_dict)

# اضافة عنصر

my_dict ['address'] = "وسط المدينة"

# الإخراج: {'address': 'Downtown'، 'age': 27، 'name': 'Jack'}

طباعة (my_dict)

كيفية إزالة أو حذف العناصر من القاموس؟

لإزالة عنصر أو حذفه من القاموس ، يمكنك استخدام طريقة pop () . سيؤدي ذلك إلى إزالة عنصر معين باستخدام الكيت المقدم وإرجاع القيمة. يمكنك أيضًا استخدام طريقة popitem () لحذف عنصر عشوائي (مفتاح وقيمة) وإرجاعه من القاموس.

إذا كنت تريد حذف جميع العناصر مرة واحدة ، يمكنك استخدام طريقة clear () . يمكنك أيضًا استخدام الكلمة الأساسية del لإزالة العناصر الفردية أو طريقة delict () لحذف القاموس بأكمله.

مثال باستخدام طريقة delict ():

#! / usr / bin / python

dict = {'Name': 'Zara'، 'Age': 7، 'Class': 'First'}

del dict ['Name']؛ # إزالة الإدخال بالمفتاح "الاسم"

dict.clear () ؛ # إزالة جميع الإدخالات في ديكت

ديل ديكت # حذف القاموس بأكمله

طباعة “ديكت ['العمر']:“ ، ديكت ['العمر']

طباعة "ديكت [" مدرسة "]:" ، ديكت ["مدرسة"]

تعلم أيضًا: راتب مطور Python في الهند

كيف تتكرر من خلال القاموس؟

في قاموس Python ، يمكنك تنفيذ حلقة باستخدام حلقة for . عندما تقوم بالتكرار خلال قاموس ، تكون مفاتيح القاموس هي القيمة المرجعة.

مثال على التكرار خلال القاموس هو:

ل x في هذه الديكته:

طباعة (x)

قراءة: أهم وظائف بايثون

كيف تتحقق من وجود مفتاح في القاموس؟

يمكنك استخدام الكلمة الأساسية " in " للتحقق من وجود مفتاح معين في القاموس ، مثل:

هذه ديكت = {

"العلامة التجارية": "فيراري" ،

"النموذج": "Daytone"،

"السنة": "1968"

}

إذا كان "نموذج" في هذه الديانة:

طباعة ("نعم ،" النموذج "هو أحد المفاتيح الموجودة في قاموس الديكت)

كيف تحدد طول القاموس؟

يمكنك ضبط طول القاموس ، أي تحديد عدد العناصر (مفتاح: أزواج القيمة) التي سيحتوي عليها ، باستخدام طريقة len () ، مثل:

طباعة (لين (هذه الديكت))

كيف تنسخ القاموس؟

يمكنك نسخ قاموس باستخدام طريقة copy () المضمنة . ومع ذلك ، لا يمكنك نسخ قاموس عن طريق كتابة dt2 =ict1 لأن ict2 سيكون فقط مرجعًا لـ ict1 .

إليك مثال باستخدام طريقة copy () :

هذه ديكت = {

"العلامة التجارية": "فورد" ،

"النموذج": "موستانج" ،

"السنة": 1964

}

mydict = thisdict.copy ()

طباعة (مايديكت)

قاموس بايثون: الفهم

في Python ، يعد فهم القاموس طريقة مباشرة وأنيقة لإنشاء قاموس جديد من قاموس قابل للتكرار. يتكون من زوج تعبير (مفتاح: قيمة) متبوعًا بعبارة داخل الأقواس المتعرجة {}. يمكن أن يحتوي فهم القاموس على العديد من عبارات for أو if .

فيما يلي مثال لإنشاء قاموس حيث يكون كل عنصر عبارة عن زوج من رقم ومربعه:

المربعات = {x: x * x for x في النطاق (6)}

# الإخراج: {0: 0 ، 1: 1 ، 2: 4 ، 3: 9 ، 4: 16 ، 5: 25}

طباعة (مربعات)

اقرأ المزيد: مكتبات تصور بيانات Python

تغليف

هذا كل شيء في الأساس - كل المعارف الأساسية التي تحتاج لمعرفتها حول قاموس Python!

إذا كنت مهتمًا بالتعرف على Python ، وكل شيء عن علم البيانات ، فراجع دورات شهادة upGrad لعلوم البيانات التي تم إنشاؤها للمهنيين العاملين وتقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع خبراء الصناعة ، 1-on -1 مع موجهين في الصناعة ، +400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.

ما هي الحاجة إلى القواميس في بايثون؟

مجموعة غير مرتبة من قيم البيانات هي قاموس بايثون. القواميس مطلوبة في Python لتخزين قيم البيانات تمامًا مثل الخريطة. في جميع أنواع البيانات الأخرى ، يمكنهم فقط الاحتفاظ بقيمة واحدة كعنصر. لكن القاموس قادر على الاحتفاظ بالمفتاح: زوج القيمة. يعمل هذا الزوج على تحسين أداء القاموس قليلاً.

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

ما الذي يمكن تخزينه في قاموس بايثون؟

تُستخدم القواميس في Python لاسترداد البيانات بمساعدة أي مفتاح فريد. كل ما يمكنك تخزينه في متغير بايثون يمكن تخزينه في قاموس بايثون. يمكنك حتى دمج قاموس في آخر عن طريق إنشاء قوائم. في المقابل ، يجب أن تكون المفاتيح غير قابلة للتغيير.

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

كيف يختلف Hashtable والقاموس؟

Hashtable عبارة عن مجموعة غير عامة ، بينما القاموس عبارة عن مجموعة عامة من قيم البيانات. يُسمح لك بتخزين أزواج القيمة والمفتاح من نفس الأنواع وكذلك أنواع البيانات المختلفة ، بينما يمكنك فقط تخزين أزواج القيمة الرئيسية من نوع البيانات نفسها في القاموس.

نظرًا لوجود Boxing و unboxing في Hashtable ، فإن عملية استرداد البيانات تكون أبطأ مقارنة بالقاموس. لا يوجد ترتيب يتم الاحتفاظ به في Hashtable ، ولكنك سترى دائمًا ترتيبًا محفوظًا للقيم المخزنة في قاموس.