الإعلانات

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

أزواج قيمة مفتاح قاموس الثعبان

في هذه المقالة ، نقدم لك العمل مع قاموس الثعبان.

إنشاء قاموس

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

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27}

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

instagram viewer
rain_percent = {1980: '17٪ '، 1981: '15٪'، 1982: '10٪ '} طباعة نسبة المطر. طباعة rain_percent [1980] # طبعات. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

تحديد أزواج القيمة الرئيسية

يمكنك أيضًا إنشاء قاموس وتهيئته باستخدام أزواج قيمة الاسم كوسيطة الكلمات الرئيسية إلى قاموس() البناء.

السكان = dict (كاليفورنيا = 37253956 ، كولورادو = 5029196 ، كونيتيكت = 3574097 ، ديلاوير = 897934) طبعة السكان. # طبعات. {'Connecticut': 3574097، 'Delaware': 897934، 'California': 37253956، 'Colorado': 5029196}

صفيف الصفوف ذات القيمة الرئيسية

هناك طريقة أخرى لإنشاء قاموس وهي استخدام مجموعة من الصفوف ذات القيمة الرئيسية. هنا نفس المثال أعلاه.

أزواج = [('California'، 37253956)، ('Colorado'، 5029196)، ('Connecticut'، 3574097)، ('Delaware'، 897934)] السكان = الاملاء (أزواج) طبعة السكان. # طبعات. {'Connecticut': 3574097، 'Delaware': 897934، 'California': 37253956، 'Colorado': 5029196}

فهم الإملاء

يوفر فهم الإملاء بناءًا رائعًا لتهيئة الإملاء إذا كان بإمكانك حساب القيم بناءً على المفاتيح. فيما يلي تهيئة إملاء أرقام وقيم مربعة لمجموعة من الأرقام.

اطبع {x: x ** 2 for x in xrange (10، 20)} # طبعات. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

كيف يعمل؟ الجزء الأخير (لـ x في xrange (10 ، 20)) إرجاع نطاق من الأرقام في النطاق المحدد. جزء الفهم الإملائي ({x: x ** 2 ..}) حلقات فوق هذا النطاق وتهيئة القاموس.

العمل مع قاموس Python

ماذا يمكنك أن تفعل مع القواميس بمجرد إنشائها؟ حسنًا ، يمكنك الوصول إلى العناصر وتحديث القيم وحذف العناصر وما إلى ذلك.

الوصول إلى عناصر قاموس Python

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

طبعة السكان ['Delaware'] # طبعات. 897934.

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

طباعة rain_percent [1980] # طبعات. 17%

يجب أن يتطابق نوع المفتاح عند الوصول إليه مع ما يتم تخزينه في قاموس Python. يؤدي ما يلي إلى حدوث خطأ لأن المفاتيح المخزنة هي أرقام بينما يكون مفتاح الوصول عبارة عن سلسلة.

س = "1980" طباعة نسبة المطر [x] # نتائج في 1 × = "1980" > 2 طبعة rain_percent [x] KeyError: '1980'

الوصول إلى مفتاح غير موجود خطأ.

rain_percent = {1980: '17٪ '، 1981: '15٪'، 1982: '10٪ '} طباعة مطر_الزئبق [1983] # طبعات 1 rain_percent = {1980: '17٪ '، 1981: '15٪'، 1982: '10٪ '} > 2 print rain_percent [1983] KeyError: 1983.

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

print rain_percent.get (1985، "0٪") # طبعات. 0%

التحقق من وجود

ماذا لو كنت تريد التحقق من وجود مفتاح دون محاولة الوصول إليه بالفعل (وربما واجهت KeyError على النحو الوارد أعلاه)؟ يمكنك استعمال ال في الكلمة الرئيسية في النموذج المفتاح في dct الذي يعيد قيمة منطقية.

طباعة 1980 في المطر. طباعة "1980" في نسبة المطر. # طبعات. صحيح. خاطئة. 

اعكس الشرط (أي تأكد من أن المفتاح غير موجود في قاموس Python) باستخدام النموذج المفتاح ليس في dct. هذا يعادل نفي الثعبان القياسي لا مفتاح في dct.

طباعة 1980 ليس في نسبة المطر. طباعة 1985 ليس في نسبة المطر. # طبعات. خاطئة. صحيح. 

تعديل العناصر

قم بتغيير القيمة من خلال تعيين المفتاح المطلوب.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} المستخدمون ["العمر"] = 29. مستخدمي الطباعة. # طبعات. {'lastname': 'Smith'، 'age': 29، 'firstname': 'John'}

استخدم نفس الصيغة لإضافة تخطيط جديد لقاموس بايثون.

المستخدمون ['dob'] = '15 -sep-1971 ' مستخدمي الطباعة. # طبعات. {'dob': '15 -sep-1971 '،' lastname ':' Smith '،' age ': 29،' firstname ':' John '}

تحديث عناصر متعددة من قاموس في لقطة واحدة باستخدام تحديث() طريقة.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} users.update ({'age': 29، 'dob': '15 -sep-1971 '}) مستخدمي الطباعة. # طبعات. {'dob': '15 -sep-1971 '،' lastname ':' Smith '،' age ': 29،' firstname ':' John '}

قم بتعيين قيمة افتراضية لمفتاح باستخدام الوضع الإفتراضي(). يعين هذا الأسلوب قيمة المفتاح إذا كان التعيين غير موجود. تقوم بإرجاع القيمة الحالية.

# لا يغير القيمة الحالية. اطبع users.setdefault ("firstname" ، "Jane") # طبعات. جون # يحدد القيمة. print users.setdefault ("city"، "NY") # طبعات. NY # القيمة النهائية. مستخدمي الطباعة. # طبعات. {'lastname': 'Smith'، 'age': 27، 'firstname': 'John'، 'city': 'NY'}

حذف العناصر

حذف التعيينات في القاموس باستخدام دل المشغل أو العامل. هذا العامل لا يعيد أي شيء.

سوف تواجه أ KeyError إذا كان المفتاح غير موجود في القاموس.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} حذف المستخدمين ["العمر"] مستخدمي الطباعة. # طبعات. {'lastname': 'Smith'، 'firstname': 'John'}

استخدم ال pop () بدلا من ذلك ، عندما تريد القيمة المحذوفة مرة أخرى.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} طباعة users.pop ("العمر") مستخدمي الطباعة. # طبعات. 27. {'lastname': 'Smith'، 'firstname': 'John'}

ماذا لو كنت تريد حذف مفتاح إذا كان موجودًا ، دون التسبب في خطأ إذا لم يكن موجودًا؟ يمكنك استخدام pop () وحدد لا يوجد للحجة الثانية على النحو التالي:

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} users.pop ('foo' ، بلا) مستخدمي الطباعة. # طبعات. {'lastname': 'Smith'، 'age': 27، 'firstname': 'John'}

وهنا سطر واحد لحذف مجموعة من المفاتيح من القاموس دون التسبب في خطأ في المفاتيح غير الموجودة.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27، 'dob': '15 -sep-1971 '} map (lambda x: users.pop (x، None)، ['age'، 'foo'، 'dob']) مستخدمي الطباعة.

هل تريد حذف جميع المفاتيح من القاموس؟ استخدم ال واضح() طريقة.

المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} users.clear () مستخدمي الطباعة. # طبعات. {}

التكرار مع قواميس بايثون

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

التكرار فوق المفاتيح

  • تستخدم أبسط طريقة لمعالجة المفاتيح (وربما القيم) بالتسلسل حلقة من النموذج:
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} لـ k في المستخدمين: print k، '=>'، users [k] # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.
  • باستخدام الطريقة iterkeys () يعمل بالضبط نفس المذكور أعلاه. اختر ما تريده من الشكل الذي تريد استخدامه.
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} for k in users.iterkeys (): print k، '=>'، users [k] # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.
  • تتضمن الطريقة الثالثة لاسترداد المفاتيح ومعالجتها في الحلقة استخدام الوظيفة المضمنة iter ().
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} for k in iter (users): print k، '=>'، users [k] # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.
  • عندما تحتاج إلى معالجة فهرس المفتاح ، استخدم تعداد () وظيفة مدمجة كما هو موضح.
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} للفهرس ، المفتاح في التعداد (المستخدمون): فهرس الطباعة ، المفتاح ، '=>' ، المستخدمون [k] # طبعات. 0 اسم العائلة => جون. 1 العمر => جون. 2Name => جون.

التكرار فوق أزواج القيمة الرئيسية

  • عندما تريد استرداد كل زوج قيمة مفتاح بمكالمة واحدة ، استخدم iteritems ().
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} for k، v in users.iteritems (): print k، '=>'، v. # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.

تكرار القيم

  • طريقة itervalues ​​() يمكن استخدامها للتكرار على جميع القيم في القاموس. على الرغم من أن هذه الطريقة تشبه حلقة باستخدام القيم()، فهو أكثر كفاءة لأنه لا يستخرج جميع القيم دفعة واحدة.
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} للقيمة في users.itervalues ​​(): قيمة الطباعة. # طبعات. حداد. 27. يوحنا.

استخراج المصفوفات

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

إحدى الحالات التي يكون من المقبول العمل فيها مع هذه المصفوفات هي عندما تحتاج إلى حذف عناصر من القاموس عندما تواجه عناصر غير مرغوب فيها. قد يتسبب العمل مع مكرر أثناء تعديل القاموس في حدوث RuntimeError.

  • طريقة العناصر() تُرجع مجموعة من الصفوف ذات القيمة الرئيسية. يمكنك التكرار عبر أزواج القيمة الرئيسية هذه كما هو موضح:
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} for k، v in users.items (): print k، '=>'، v. # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.
  • استرجاع جميع المفاتيح في القاموس باستخدام الطريقة المفاتيح ().
    المستخدمون = {'firstname': 'John'، 'lastname': 'Smith'، 'age': 27} طباعة users.keys () # طبعات. ["اسم العائلة" ، "العمر" ، "الاسم الأول"]

    استخدم الصفيف الذي تم إرجاعه للتكرار فوق المفاتيح.

    for k in users.keys (): print k، '=>'، users [k] # طبعات. اسم العائلة => سميث. العمر => 27. الاسم => جون.
  • بطريقة مماثلة ، استخدم الطريقة القيم() لاسترداد جميع القيم في القاموس.
    للقيمة في users.values ​​(): قيمة الطباعة. # طبعات. حداد. 27. يوحنا. 

كيف تستخدم قواميس Python؟

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

حقوق الصورة: viper345 / Shutterstock