English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات في Python

تحكم في العملية في Python

الوظائف في بايثون

أنواع البيانات في بايثون

عمليات ملفات Python

أوبجكتس وكلاس في Python

تواريخ和时间 في Python

معرفة متقدمة في Python

دليل Python

القاموس (Dictionary) في بايثون

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

ما هو قائمة المراجع في 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() وany() وlen() وcmp() وsort() وما إلى ذلك عادةً ما يتم استخدامها مع القواميس لتنفيذ مهام مختلفة.

وظائف قائمة القواميس المدمجة مثل 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))