English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا المقال، ستتعلم كل شيء عن قائمة المراجع في Python; كيفية إنشاءها، الوصول إليها، إضافة وإزالة العناصر، بالإضافة إلى العديد من الطرق المدمجة.
قائمة المراجع في Python هي مجموعة من العناصر غير المرتبة. بينما تحتوي أنواع البيانات المركبة الأخرى فقط على القيم كعناصر، تحتوي قائمة المراجع على زوجات المفتاح: القيمة (key:value).
تم تحسين قائمة المراجع في Python لاسترجاع القيم عند معرفة المفتاح.
إن إنشاء قائمة مرجعية بسيط جدًا مثل وضع العناصر في دوال مفتوحة مفصولة بفواصل ثنائية {}.
يملك العنصر مفتاحًا ولفظًا مرتبطًا به، يمثل زوجًا، مفتاح: قيمة.
على الرغم من أن القيم يمكن أن تكون أي نوع بيانات وأنها يمكن أن تكرر، ولكن يجب أن تكون الأصابع نوعًا غير قابل للتغيير (بأعمدة غير قابلة للتغييركلمات،أرقامأوتجميعات)并且必须是唯一的。
# 空字典 my_dict = {} # 带有整数键的字典 my_dict = {1: 'apple', 2: 'ball'} # 混合键字典 my_dict = {'name': 'John', 1: [2, 4, 3]} # 使用 dict() my_dict = dict({1:'apple', 2:'ball'}) # 将每个项作为一对的序列 my_dict = dict([(1,'apple'), (2,'ball')])
كما ترون في أعلى، يمكننا أيضًا استخدام الدالة المدمجة dict() لإنشاء قاموس.
على الرغم من أن الفهرسة تستخدم مع أنواع الكيانات الأخرى لتحديد القيم، إلا أن القاموس يستخدم المفاتيح. يمكن استخدام المفاتيح في الدوائر أو مع طريقة get().
الفرق بين استخدام get() هو أنه إذا لم يتم العثور على المفتاح، فإنه يعود إلى None بدلاً من KeyError.
عند تشغيل هذا البرنامج، الناتج هو:
Jack 26
القاموس قابلة للتغيير. يمكننا استخدام عمود التساوي لإضافة عناصر جديدة أو تغيير قيمة العناصر الحالية.
إذا كان المفتاح موجودًا، فإن القيمة يتم تحديثها، وإلا يتم إضافة زوج جديد مفتاح: قيمة إلى القاموس.
عند تشغيل هذا البرنامج، الناتج هو:
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
يمكننا استخدام الطريقة pop() لإزالة العنصر المحدد من القاموس. تستخدم هذه الطريقة المفتاح المقدم كـمفتاح لإزالة العنصر ويعود القيمة.
يمكن استخدام الطريقة popitem() لإزالة وإرجاع أي عنصر (مفتاح، قيمة) من القاموس. يمكن استخدام الطريقة clear() لإزالة جميع العناصر في مرة واحدة.
يمكننا أيضًا استخدام كلمة المفتاح del لإزالة عنصر فردي أو القاموس نفسه.
عند تشغيل هذا البرنامج، الناتج هو:
16 {1: 1, 2: 4, 3: 9, 5: 25} (1, 1) {2: 4, 3: 9, 5: 25} {2: 4, 3: 9} {}
فيما يلي قائمة بالطرق المتاحة للقاموس. تم استخدام بعضها في المثال السابق.
الطريقة | الوصف |
---|---|
clear() | حذف جميع العناصر من القاموس. |
copy() | إرجاع نسخة سطحية من القاموس. |
fromkeys(seq[v]) | لإنشاء قاموس جديد، باستخدام عناصر سلسلة seq كمفاتيح القاموس، v هي القيمة الافتراضية لجميع المفاتيح. |
get(key[d]) | إرجاع قيمة المفتاح. إذا لم يكن المفتاح موجودًا، فإنها تعود إلى d (القيمة الافتراضية هي None). |
items() | إرجاع مجموعة من الأزواج (مفتاح، قيمة) القابلة للتدوير. |
keys() | إرجاع جميع المفاتيح في القاموس. |
pop(key[d]) | حذف العنصر الذي يحتوي على المفتاح وإرجاع قيمته، إذا لم يتم العثور على key، فإنها تعود إلى d. إذا لم يتم تقديم d، ولم يتم العثور على key، فإنها تُثير خطأ KeyError. |
popitem() | حذف وإرجاع أي عنصر (مفتاح، قيمة). إذا كان القاموس فارغًا، فإنه يُثير خطأ KeyError. |
setdefault(key[d]) | الرجوع إلى القيمة المحددة للключ، إذا لم يكن القيمة المحددة للключ موجودة في القاموس، فإنها تعود إلى القيمة المحددة، والقيمة الافتراضية هي None. |
[other]) | استخدام منotherتحديث القاموس باستخدام زوجات المفاتيح/القيم، تغطية المفاتيح الحالية. |
values() | تقوم بإرجاع القيم في شكل قائمة. |
هذه بعض الأمثلة على استخدام هذه الطرق.
marks = {}.fromkeys(['Math', 'English', 'Science'], 0) # الخروج: {'English': 0, 'Math': 0, 'Science': 0} print(marks) للفور item في marks.items(): print(item) # الخروج: ['English', 'Math', 'Science'] list(sorted(marks.keys()))
فهمية القاموس هي طريقة رائعة وسهلة لإنشاء قواميس جديدة من المولدات في بايثون.
فهمية القاموس تحتوي على تعبير زوجي (مفتاح: قيمة) متبوعًا بجملة for في داخل الأقواس{}.
هذه أمثلة لصنع قواميس تحتوي على كل مشروع كزوج من الأرقام والأرقام المربعة.
squares = {x: x*x for x in range(6)} # الخروج: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} print(squares)
هذا الكود مساوي
squares = {} للفور x في range(6): squares[x] = x*x
فهمية القاموس يمكن أن تحتوي على المزيدللفورأوجملة if.
يمكن استخدام جملة if لتصفية العناصر لتشكيل قاموس جديد.
هذه بعض أمثلة القواميس التي تحتوي فقط على العناصر الزوجية.
odd_squares = {x: x*x for x in range(11) if x%2 == 1} # الخروج: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} print(odd_squares)
للحصول على معلومات إضافية، يرجى زيارةفهم القواميس في Python.
يمكننا استخدام الكلمة المفتاحية لاختبار ما إذا كان المفتاح موجودًا في القاموس في in. يُستخدم اختبار العضوية فقط للكلمات المفتاحية وليس للقيم.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # الخروج: True print(1 in squares) # الخروج: True print(2 not in squares) # اختبار العضوية للكلمات المفتاحية فقط وليس للقيم # الخروج: False print(49 in squares)
باستخدام دورة for، يمكننا استكشاف كل مفتاح في القاموس.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} للفور في الجمعيات: print(الجمعيات[i])
وظائف مثل all() وany() وlen() وcmp() وsort() وما إلى ذلك عادةً ما يتم استخدامها مع القواميس لتنفيذ مهام مختلفة.
الوظيفة | الوصف |
---|---|
all() | إذا كانت جميع المفاتيح في القائمة صحيحة (أو إذا كانت القائمة فارغة)، يتم العودة إلى True. |
any() | إذا كان أي مفتاح في القائمة صحيحًا، يتم العودة إلى True. إذا كانت القائمة فارغة، يتم العودة إلى False. |
len() | العودة إلى طول القائمة (عدد العناصر). |
cmp() | مقارنة عناصر القواميس. |
sorted() | العودة إلى قائمة المفاتيح المعدة من القائمة. |
إليك بعض الأمثلة على استخدام وظائف مدمجة لمعالجة القواميس.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # خروج: 5 print(len(squares)) # خروج: [1, 3, 5, 7, 9] print(sorted(squares))