الفرق بين المراجعتين لصفحة: «Python/dict»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
سطر 9: سطر 9:
</syntaxhighlight>يمكن إيجاد القواميس في لغات أخرى تحت مسمّى الذواكر الترابطية (associative memories) أو المصفوفات الترابطية (associative arrays).
</syntaxhighlight>يمكن إيجاد القواميس في لغات أخرى تحت مسمّى الذواكر الترابطية (associative memories) أو المصفوفات الترابطية (associative arrays).


تختلف القواميس عن أنواع التسلسلات الأخرى في طريقة الفهرسة، فالقوائم والمجموعات تكون مفهرسة بواسطة مدى محدد من الأرقام، في حين أنّ القواميس تكون مفهرسة بواسطة المفاتيح keys.
تختلف القواميس عن أنواع التسلسلات الأخرى في طريقة الفهرسة، فالقوائم والمجموعات تكون مفهرسة بواسطة مدى محدد من الأرقام، في حين أنّ القواميس تكون مفهرسة بواسطة المفاتيح (keys).


يمكن استخدام أي نوع من أنواع البيانات غير القابلة للتغيير immutable كمفاتيح في القواميس، مثل [[Python/str|السلاسل النصية]] و<nowiki/>[[Python/int|الأرقام]]، أو [[Python/tuples|الصفوف]] التي تتضمن [[Python/str|سلاسل نصية]] أو [[Python/int|أعداد]] أو [[Python/tuples|صفوف]]، ولكن بشرط أن لا تتضمن - بصورة مباشرة أو غير مباشرة - أي كائن قابل للتغيير. وبطبيعة الحال لا يمكن استخدام [[Python/list|القوائم lists]] كمفاتيح نظرًا لأنّها كائنات قابلة للتغيير بواسطة الإسناد عن طريق الفهارس أو الاقتطاع أو توابع مثل <code>append()‎</code> و <code>extend()</code>‎.
يمكن استخدام أي نوع من أنواع البيانات غير القابلة للتغيير (immutable) كمفاتيح في القواميس، مثل [[Python/str|السلاسل النصية]] و<nowiki/>[[Python/int|الأرقام]]، أو [[Python/tuples|الصفوف]] التي تتضمن [[Python/str|سلاسل نصية]] أو [[Python/int|أعداد]] أو [[Python/tuples|صفوف]]، ولكن بشرط أن لا تتضمن - بصورة مباشرة أو غير مباشرة - أي كائن قابل للتغيير. وبطبيعة الحال لا يمكن استخدام [[Python/list|القوائم lists]] كمفاتيح نظرًا لأنّها كائنات قابلة للتغيير بواسطة الإسناد عن طريق الفهارس أو الاقتطاع أو توابع مثل <code>append()‎</code> و <code>extend()</code>‎.


في حال إضافة قائمة بأزواج (مفتاح: قيمة) داخل الأقواس المعقوفة فإنّ اللغة تضيف هذه الأزواج كقيمة ابتدائية في القاموس، وتستخدم اللغة طريقة العرض هذه عندما تعرض القواميس كمخرجات.
في حال إضافة قائمة بأزواج (مفتاح: قيمة) داخل الأقواس المعقوفة فإنّ اللغة تضيف هذه الأزواج كقيمة ابتدائية في القاموس، وتستخدم اللغة طريقة العرض هذه عندما تعرض القواميس كمخرجات.
سطر 41: سطر 41:
>>> 'jack' not in tel
>>> 'jack' not in tel
False
False
</syntaxhighlight>تستخدم الدالة <code>dict()</code>‎ لإنشاء قواميس بصورة مباشرة من تسلسلات من أزواج قيمة-مفتاح وكما يلي:<syntaxhighlight lang="python3">
</syntaxhighlight>تستخدم الدالة <code>dict()</code>‎ لإنشاء قواميس بصورة مباشرة من تسلسلات من أزواج قيمة-مفتاح، كما يلي:<syntaxhighlight lang="python3">
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}
{'sape': 4139, 'jack': 4098, 'guido': 4127}
سطر 56: سطر 56:
[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Types]]
[[تصنيف:Python Types]]
[[تصنيف:Dictionary]]
[[تصنيف:Mapping]]

مراجعة 05:23، 10 مارس 2018

القواميس هي مجاميع غير مرتّبة من أزواج (مفتاح: قيمة) (key: value) مع اشتراط كون المفاتيح ذات قيم فريدة (ضمن القاموس الواحد). يمكن استخدام الأقواس المعقوفة {} لإنشاء قاموس فارغ.

>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['guido'] = 4127
>>> tel
{'sape': 4139, 'guido': 4127, 'jack': 4098}
>>> tel['jack']
4098

يمكن إيجاد القواميس في لغات أخرى تحت مسمّى الذواكر الترابطية (associative memories) أو المصفوفات الترابطية (associative arrays).

تختلف القواميس عن أنواع التسلسلات الأخرى في طريقة الفهرسة، فالقوائم والمجموعات تكون مفهرسة بواسطة مدى محدد من الأرقام، في حين أنّ القواميس تكون مفهرسة بواسطة المفاتيح (keys).

يمكن استخدام أي نوع من أنواع البيانات غير القابلة للتغيير (immutable) كمفاتيح في القواميس، مثل السلاسل النصية والأرقام، أو الصفوف التي تتضمن سلاسل نصية أو أعداد أو صفوف، ولكن بشرط أن لا تتضمن - بصورة مباشرة أو غير مباشرة - أي كائن قابل للتغيير. وبطبيعة الحال لا يمكن استخدام القوائم lists كمفاتيح نظرًا لأنّها كائنات قابلة للتغيير بواسطة الإسناد عن طريق الفهارس أو الاقتطاع أو توابع مثل append()‎ و extend()‎.

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

إنّ العمليات الرئيسية التي تؤديها القواميس هي تخزين قيمة مع مفتاح معين، واستخراج تلك القيمة بواسطة المفتاح الخاصّ بها.

يمكن حذف زوج (مفتاح: قيمة) باستخدام الكلمة المفتاحية del:

>>> del tel['sape']

في حال تخزين قيمة باستخدام مفتاح مستخدم سابقًا، فإنّ القيمة السابقة لذلك المفتاح ستهمل وستربط اللغة القيمة الجديدة بهذا المفتاح.

>>> tel['jack']
4098
>>> tel['jack'] = 9841
>>> tel['jack']
9841

تطلق اللغة خطأً في حال استخراج قيمة باستخدام مفتاح غير موجود ضمن القاموس:

>>> tel['rosy']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'rosy'

يمكن الحصول على قائمة عشوائية بالمفاتيح الموجودة ضمن القاموس باستخدام الدالة list()‎:

>>> list(tel.keys())
['jack', 'guido']

وللحصول على قائمة مرتّبة بالمفاتيح فيمكن استخدام الدالة sorted()‎:

>>> sorted(tel.keys())
['guido', 'jack']

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

>>> 'guido' in tel
True
>>> 'jack' not in tel
False

تستخدم الدالة dict()‎ لإنشاء قواميس بصورة مباشرة من تسلسلات من أزواج قيمة-مفتاح، كما يلي:

>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'sape': 4139, 'jack': 4098, 'guido': 4127}

يمكن كذلك الاستفادة من dict comprehensions لإنشاء قواميس من عبارات مفتاح-قيمة متنوعة:

>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}

عندما تكون المفاتيح سلاسل نصية بسيطة، يمكن استخدام معاملات مفتاحية لتعيين الأزواج، كما في المثال التالي:

>>> dict(sape=4139, guido=4127, jack=4098)
{'sape': 4139, 'jack': 4098, 'guido': 4127}

مصادر