القائمة الرئيسية

الصفحات

دورة البرمجة بلغة بايثون - الدرس الثامن والعشرون (قواميس بايثون)

دورة البرمجة بلغة بايثون - الدرس الثامن والعشرون (قواميس بايثون)

دورة البرمجة بلغة بايثون - الدرس الثامن والعشرون (قواميس بايثون)

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


قاموس Python عبارة عن مجموعة غير مرتبة من العناصر. يحتوي كل عنصر في القاموس على زوج (مفتاح / قيمة).


تم تحسين القواميس لاسترداد القيم عندما يكون المفتاح معروفًا.


إنشاء قاموس في بايثون

يعد إنشاء القاموس أمرًا بسيطًا مثل وضع العناصر داخل أقواس معقوفة {} مفصولة بفواصل.


عنصر له مفتاح وقيمة مقابلة يتم التعبير عنها كزوج (مفتاح: قيمة).


بينما يمكن أن تكون القيم من أي نوع بيانات ويمكن تكرارها ، يجب أن تكون المفاتيح من النوع غير القابل للتغيير (سلسلة أو رقم أو مجموعة مع عناصر ثابتة) ويجب أن تكون فريدة.

# empty dictionary
my_dict = {}

# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}

# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}

# using dict()
my_dict = dict({1:'apple', 2:'ball'})

# from sequence having each item as a pair
my_dict = dict([(1,'apple'), (2,'ball')])


كما ترى في الأعلى ، يمكننا أيضًا إنشاء قاموس باستخدام الدالة المضمنة ()dic.


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

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


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

# get vs [] for retrieving elements
my_dict = {'name': 'Jack', 'age': 26}

# Output: Jack
print(my_dict['name'])

# Output: 26
print(my_dict.get('age'))

# Trying to access keys which doesn't exist throws error
# Output None
print(my_dict.get('address'))

# KeyError
print(my_dict['address'])

الناتج

Jack
26
None
Traceback (most recent call last):
  File "<string>", line 15, in <module>
    print(my_dict['address'])
KeyError: 'address'


تغيير وإضافة عناصر الى القاموس

القواميس قابلة للتغيير. يمكننا إضافة عناصر جديدة أو تغيير قيمة العناصر الموجودة باستخدام عامل الإسناد.


إذا كان المفتاح موجودًا بالفعل ، فسيتم تحديث القيمة الحالية. في حالة عدم وجود المفتاح ، تتم إضافة زوج جديد (مفتاح: قيمة) إلى القاموس.

# Changing and adding Dictionary Elements
my_dict = {'name': 'Jack', 'age': 26}

# update value
my_dict['age'] = 27

#Output: {'age': 27, 'name': 'Jack'}
print(my_dict)

# add item
my_dict['address'] = 'Downtown'

# Output: {'address': 'Downtown', 'age': 27, 'name': 'Jack'}
print(my_dict)

الناتج

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}


إزالة العناصر من القاموس

يمكننا إزالة عنصر معين من القاموس باستخدام طريقة ()pop. تقوم هذه الطريقة بإزالة عنصر بالمفتاح المعطى وإرجاع القيمة.


يمكن استخدام طريقة ()popitem لإزالة وإرجاع زوج عنصر تعسفي (مفتاح ، قيمة) من القاموس. يمكن إزالة جميع العناصر مرة واحدة ، باستخدام طريقة ()clear.


يمكننا أيضًا استخدام الكلمة الأساسية del لإزالة العناصر الفردية أو القاموس بأكمله.

# Removing elements from a dictionary

# create a dictionary
squares = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# remove a particular item, returns its value
# Output: 16
print(squares.pop(4))

# Output: {1: 1, 2: 4, 3: 9, 5: 25}
print(squares)

# remove an arbitrary item, return (key,value)
# Output: (5, 25)
print(squares.popitem())

# Output: {1: 1, 2: 4, 3: 9}
print(squares)

# remove all items
squares.clear()

# Output: {}
print(squares)

# delete the dictionary itself
del squares

# Throws Error
print(squares)


الناتج

16
{1: 1, 2: 4, 3: 9, 5: 25}
(5, 25)
{1: 1, 2: 4, 3: 9}
{}
Traceback (most recent call last):
  File "<string>", line 30, in <module>
    print(squares)
NameError: name 'squares' is not defined


دوال قواميس بايثون

الطرق المتوفرة مع القاموس موجودة في هذا الرابط. تم استخدام بعضها بالفعل في الأمثلة المذكورة في الاعلى.


فيما يلي بعض الأمثلة على دوال استخدام هذه الطرق.

# Dictionary Methods
marks = {}.fromkeys(['Math', 'English', 'Science'], 0)

# Output: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)

for item in marks.items():
    print(item)

# Output: ['English', 'Math', 'Science']
print(list(sorted(marks.keys())))


الناتج

{'Math': 0, 'English': 0, 'Science': 0}
('Math', 0)
('English', 0)
('Science', 0)
['English', 'Math', 'Science']


استيعاب قواميس بايثون

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


يتكون استيعاب القاموس من زوج تعبير (key: value) متبوعًا بعبارة for داخل الأقواس المتعرجة {}.


فيما يلي مثال لعمل قاموس يكون كل عنصر فيه زوجًا من رقم ومربعه.

# Dictionary Comprehension
squares = {x: x*x for x in range(6)}

print(squares)

الناتج

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

هذا الكود يعادل

squares = {}
for x in range(6):
    squares[x] = x*x
print(squares)

الناتج

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

يمكن أن يحتوي استيعاب القاموس بشكل اختياري على المزيد من عبارات for أو if.


يمكن لبيان if الاختياري أن يقوم بتصفية العناصر لتشكيل القاموس الجديد.


فيما يلي بعض الأمثلة لعمل قاموس يحتوي على عناصر فردية فقط.

# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}

print(odd_squares)

الناتج

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

دوال القاموس الأخرى

اختبار عضوية عنصر في القاموس

يمكننا اختبار ما إذا كان أحد المفاتيح موجودًا في قاموس أو لا يتم استخدام الكلمة الأساسية in. لاحظ أن اختبار العضوية مخصص فقط للمفاتيح وليس للقيم.

# Membership Test for Dictionary Keys
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: True
print(1 in squares)

# Output: True
print(2 not in squares)

# membership tests for key only not value
# Output: False
print(49 in squares)

الناتج

True
True
False


التكرار من خلال القاموس

يمكننا تكرار كل مفتاح في القاموس باستخدام حلقة for.

# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

الناتج

1
9
25
49 


وظائف مدمجة في القاموس

الدالات المضمنة مثل all ، any ، len، cmp ، Sorted ، إلخ ، تُستخدم عادةً مع القواميس لأداء مهام مختلفة.

وظائف مدمجة في القاموس


فيما يلي بعض الأمثلة التي تستخدم وظائف مضمنة للعمل مع القاموس.

# Dictionary Built-in Functions
squares = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

# Output: False
print(all(squares))

# Output: True
print(any(squares))

# Output: 6
print(len(squares))

# Output: [0, 1, 3, 5, 7, 9]
print(sorted(squares))


الناتج

False
True
6
[0, 1, 3, 5, 7, 9]
reaction:
Ahmed Taher
Ahmed Taher
مدون من العراق . احب البرمجة وكل ما يتعلق بالشبكات والسيرفرات وامن المعلومات . واسعى الى توفير جميع المصادر والمواد للامتحانات الدولية.

تعليقات