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

الصفحات

الكلاس dict والكلاس set في بايثون

مفهوم الكلاس dict في بايثون

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

الـ dict عبارة عن جدول يتألف من عامودين, الأول يحتوي المفاتيح ( Keys ) و الثاني يحتوي القيم ( Values ) الخاصة بكل عنصر.

كل عنصر يتم إضافته في dict يجب إعطاؤه قيمتين. الأولى تمثل المفتاح ( Key ) و الثانية تمثل قيمته ( Value ).

المفاتيح تستخدم للوصول إلى القيم, لهذا لا يمكن وجود عنصرين في الـ dict عندهم نفس المفتاح. إذاً, كل Key موضوع يسمح لك بالوصول لقيمة واحدة من القيم الموجودة في الـ dict.


طريقة تعريف dict في بايثون

لتعريف dict نستخدم الرمز { } .
بداخل هذا الرمز يمكنك تمرير العناصر بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.
لا تنسى أن كل عنصر يجب أن يملك قيمتين, الأولى تمثل المفتاح و الثانية تمثل القيمة. بين كل مفتاح و قيمة نضع الرمز : .

في المثال التالي قمنا بتعريف dict فارغ, أي لا يحتوي أي عنصر.

المثال الأول

Test.py
data = {}        # data فارغ إسمه dict هنا قمنا بتعريف
	  print(data)      # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
	  

سنحصل على النتيجة التالية عند التشغيل.

{}


ملاحظة

سواء كنت تقوم بتعريف dict أو set فإنك تستخدم الرمز { } كما لاحظت في المثال السابق.
لهذا لا نلاحظ وجود أي فرق بين عرض ما يحتويه dict فارغ أو set فارغ.

بمجرد أن تضيف عنصر واحد بين الرمز { } و تعطيه مفتاح و قيمة, عندها سيفهم مفسّر لغة بايثون أنك تقصد تعريف dict و ليس set.



في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
المفاتيح وضعناها كأرقام, و القيم وضعناها كنصوص مع الإشارة إلى أنه يمكنك وضع أي نوع تريد.
كما أننا قمنا تعريف كل عنصر ( أي كل مفتاح و قيمة ) على سطر منفرد لتكون قراءته أسهل فقط.

المثال الثاني

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
		data = {
		1: 'Admin',
		2: 'Editor',
		3: 'Reader'
		}

		# ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
		print(data)
	  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor', 3: 'Reader'}


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
المفاتيح وضعناها كنصوص, و القيم وضعناها كأرقام و نصوص.

المثال الثالث

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
	data = {
    'id': 1,
    'name': 'Mhamad',
    'mobile': 70123456
	}

	# ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
	print(data)
	

سنحصل على النتيجة التالية عند التشغيل.

{'id': 1, 'name': 'Mhamad', 'mobile': 70123456}

الوصول لقيم عناصر الـ dict في بايثون

للوصول لأي عنصر في الـ dict سواء للحصول على قيمته أو تغييرها أو حذفها فإننا نستخدم المفتاح الخاص بالعنصر.


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا باستخدام الرمز [] لعرض قيمة العنصر الذي يملك المفتاح رقم 1.

المثال الأول

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
		data = {
		1: 'Admin',
		2: 'Editor',
		3: 'Reader'
		}

		# 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
		print(data[1])
	  

سنحصل على النتيجة التالية عند التشغيل.

Admin


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا باستخدام الدالة get() لعرض قيمة العنصر الذي يملك المفتاح رقم 1.

المثال الثاني

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
	data = {
    1: 'Admin',
    2: 'Editor',
    3: 'Reader'
	}

	# 1 هنا قمنا بطباعة قيمة العنصر الذي يملك المفتاح رقم
	print(data.get(1))
	

سنحصل على النتيجة التالية عند التشغيل.

Admin


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.

المثال الثالث

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
	  data = {
	  1: 'Admin',
	  2: 'Editor',
	  3: 'Reader'
	  }

	  # و من ثم سيتم طباعته key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
	  for key in data:
	  print(key)
	  

سنحصل على النتيجة التالية عند التشغيل.

1
2
3


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر, بعدها قمنا بعرض جميع المفاتيح الموضوعة فيه باستخدام الحلقة for.

المثال الرابع

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
		data = {
		1: 'Admin',
		2: 'Editor',
		3: 'Reader'
		}

		# و من ثم سيتم طباعة قيمة هذا المفتاح key في المتغير data في كل مرة سيتم وضع مفتاح عنصر من عناصر الكائن
		for key in data:
		print(data[key])
		

سنحصل على النتيجة التالية عند التشغيل.

Admin
Editor
Reader

إضافة عناصر في الـ dict في بايثون

لإضافة عنصر جديد في الـ dict فإننا نمرر مفتاح جديد و من بعدها نضع القيمة التي يساويها.


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
بعدها قمنا بإضافة عنصر جديد على كائن الـ dict.

مثال

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
		  data = {
		  1: 'Admin',
		  2: 'Editor',
		  3: 'Reader'
		  }

		  # 'Author' مفتاحه الرقم 4, و قيمته النص ,data هنا قمنا بإضافة عنصر جديد في الكائن
		  data[4] = 'Author'

		  # data هنا قمنا بعرض ما أصبح يحتويه الكائن
		  print(data)
		  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor', 3: 'Reader', 4: 'Author'}

تبديل قيم عناصر الـ dict في بايثون

لتبديل قيمة أي عنصر في الـ dict فإننا نمرر مفتاح العنصر الذي نريد تبديل قيمته و من بعدها نضع القيمة الجديدة.


في المثال التالي قمنا بتعريف dict وضعنا فيه ثلاث عناصر.
بعدها قمنا بتبديل قيمة العنصر الذي يملك مفتاح يساوي 3.

مثال

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
			data = {
			1: 'Admin',
			2: 'Editor',
			3: 'Reader'
			}

			# 'Subscriber' وضعنا بدلاً منها النص .data هنا قمنا بتبديل قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
			data[3] = 'Subscriber'

			# data هنا قمنا بعرض ما أصبح يحتويه الكائن
			print(data)
		  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor', 3: 'Subscriber'}

حذف عناصر الـ dict بواسطة الجملة del في بايثون

الجملة del تستخدم لحذف الـ dict كما هو من الذاكرة أو لحذف عناصر محددة منه.


في المثال التالي قمنا بتعريف dict وضعنا فيه أرقام. بعدها قمنا بحذف عنصرين منه.

المثال الأول

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
	  data = {
	  1: 'Admin',
	  2: 'Editor',
	  3: 'Reader'
	  }

	  # data هنا قمنا بحذف العنصر الذي يملك المفتاح رقم 3 في الكائن
	  del data[3]

	  # data هنا قمنا بعرض ما أصبح يحتويه الكائن
	  print(data)
	

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor'}


في المثال التالي قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.

المثال الثاني

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
  data = {
  1: 'Admin',
  2: 'Editor',
  3: 'Reader'
  }

  # كما هو من الذاكرة data هنا قمنا بحذف الكائن
  del data

  # و الذي في الأصل قمنا بحذفه من الذاكرة لذلك سيظهر خطأ عند التشغيل data هنا حاولنا عرض ما يحتويه الكائن
  print(data)
  

سنحصل على النتيجة التالية عند التشغيل.

NameError: name 'data' is not defined

معرفة ما إذا كان الـ dict يحتوي على مفتاح معين في بايثون

العامل in يستخدم للبحث في الـ dict عن مفتاح معين أو للمرور على قيمه عند إستخدامه في الحلقة for كما فعلنا في بعض الأمثلة السابقة.

عند استخدام العامل in للبحث في الـ dict عن مفتاح ما فإنه يرجع True في حال تم إيجاد عنصر يملك هذا المفتاح.
و يرجع False في حال لم يجد عنصر يملك هذا المفتاح.


في المثال التالي إستخدمنا العامل in للبحث في الـ dict عن عنصر يملك مفتاح يساوي 2.

مثال

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
	  data = {
	  1: 'Admin',
	  2: 'Editor',
	  3: 'Reader'
	  }

	  # True عن المفتاح رقم 2. إذا تم إيجاد عنصر يملك هذا المفتاح سيتم عرض القيمة data هنا سيتم البحث في الكائن
	  print(2 in data)
	

سنحصل على النتيجة التالية عند التشغيل.

Is Rima in the dict?
True

معرفة عدد عناصر الـ dict في بايثون

لمعرفة عدد عناصر كائن نوعه dict نستخدم الدالة len().

في المثال التالي قمنا بتعريف dict يتألف من ثلاث عناصر. بعدها قمنا بطابعة عدد عناصره بواسطة الدالة len().

مثال

Test.py
# data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
data = {
    1: 'Admin',
    2: 'Editor',
    3: 'Reader'
}

# len() الذي سترجعه الدالة data هنا قمنا بعرض عدد عناصر الكائن
print(len(data))
		

سنحصل على النتيجة التالية عند التشغيل.

3

دوال الكلاس dict في بايثون

إسم الدالة مع تعريفها
clear() تستخدم لحذف جميع عناصر الـdict الذي قام باستدعائها.
شاهد المثال »
copy() ترجع نسخة من الـdict الذي قام باستدعائها.
شاهد المثال »
popitem() ترجع آخر عنصر تم إضافته في كائن الـdict الذي قام باستدعائها و من ثم تحذفه منه.
في حال لم يتم العثور على القيمة المراد حذفها ترمي الإستثناء KeyError.
شاهد المثال »
pop(key[, default]) تبحث في كائن الـdict الذي قام باستدعائها عن العنصر الذي يملك نفس المفتاح الذي نمرره لها مكان الباراميتر key و من ثم تحذفه منه.
مكان الباراميتر default يمكنك تمرير قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.
في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default ترمي الإستثناء KeyError.
شاهد المثال »
get(key[, default]) تبحث في كائن الـdict الذي قام باستدعائها عن قيمة المفتاح الذي نمرره لها مكان الباراميتر key و ترجعها.
مكان الباراميتر default يمكنك تمرير قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.
في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default فإنها ترجع None.
شاهد المثال »
keys() ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها.
ملاحظة: مصفوفة المفاتيح التي يتم إرجاعها, هي ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.
شاهد المثال »
values() ترجع مصفوفة نوعها dict_keys فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها.
ملاحظة: مصفوفة القيم التي يتم إرجاعها, هي ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.
شاهد المثال »
items() ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها.
ملاحظة: مصفوفة العناصر التي يتم إرجاعها, هي ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.
شاهد المثال »
fromkeys(seq[, value]) تستخدم لإنشاء dict جديد مبني على قيم مصفوفة نمررها له.
عند إستدعاءها نمرر لها كائن يمثل مصفوفة من أي نوع مكان الباراميتر seq, عناصر هذا الكائن يتم وضعها كمفاتيح في كائن الـ dict الذي سيتم إرجاعه.
مكان الباراميتر value يمكنك تمرير القيمة الإفتراضية التي تريد وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.
و في حال لم تقم بتمرير قيمة إفتراضية مكان الباراميتر value ستكون جميع قيمه تساوي None.
شاهد المثال »
setdefault(key[, default]) تستخدم للحصول على قيمة مفتاح موجود في كائن الـdict الذي قام باستدعائها, أو لإضافة عنصر جديد فيه مع إرجاع قيمته أيضاً.
مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.
مكان الباراميتر default يمكنك تمرير القيمة الإفتراضية التي تريد وضعها للعنصر في حال تم إضافته لأنه إفتراضياً إن تم إضافة عنصر جديد ستكون قيمته None.
شاهد المثال »
update([other]) تستخدم لتحديث قيم عناصر الـdict الذي قام باستدعائها على أساس المفاتيح الموجودة فيه.
مكان الباراميتر other يمكننا أن نمرر كائن dict فيه عنصر واحد أو مجموعة العناصر التي نريد تحديث قيمها أو إضافتها في كائن الـdict الذي قام باستدعائها.
أي عنصر نمرره مكان الباراميتر other يملك مفتاح غير موجود في كائن الـdict الذي قام باستدعائها سيتم إضافته فيه.
شاهد المثال »

الدالة ()clear في بايثون

تعريفها

تستخدم لحذف جميع عناصر الـdict الذي قام باستدعائها.



بناؤها

                  dict.clear()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

لا ترجع قيمة.


مثال

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # data هنا قمنا بحذف جميع العناصر الموجودة في الكائن
                    data.clear()

                    # فارغ dict و الذي سيظهر كـ data هنا قمنا بعرض ما يحتويه الكائن
                    print('data contains:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

data contains: {}

الدالة ()copy في بايثون

تعريفها

ترجع نسخة من الـdict الذي قام باستدعائها.



بناؤها

                  dict.copy()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع نسخة من الـdict الذي قام باستدعائها.


مثال

Test.py
                    # data1 يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data1 = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # data2 في الكائن data1 هنا قمنا بنسخ عناصر الكائن
                    data2 = data1.copy()

                    # data2 و data1 هنا قمنا بعرض ما يحتويه الكائن
                    print('dict1 contains:', data1)
                    print('dict2 contains:', data2)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict1 contains: {1: 'Admin', 2: 'Editor', 3: 'Reader'}
dict2 contains: {1: 'Admin', 2: 'Editor', 3: 'Reader'}

الدالة ()popitem في بايثون

تعريفها

ترجع آخر عنصر تم إضافته في كائن الـdict الذي قام باستدعائها و من ثم تحذفه منه.



بناؤها

                  dict.popitem()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع العنصر الذي تم حذفه من الـdict.



أخطاء محتملة

ترمي الإستثناء KeyError في حال كان الـdict فارغ.


مثال

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و عرض قيمته data هنا قمنا باستخراج آخر عنصر موجود في الكائن
                    print('Returned element:', data.popitem())

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned element: (3, 'Reader')
Remaining elements: {1: 'Admin', 2: 'Editor'}

الدالة ()pop في بايثون

تعريفها

تبحث في كائن الـdict الذي قام باستدعائها عن العنصر الذي يملك نفس المفتاح الذي نمرره لها مكان الباراميتر key و من ثم تحذفه منه.



بناؤها

                  dict.pop(key[, default])
                


باراميترات

  • مكان الباراميتر key نمرر مفتاح العنصر الذي نريد الحصول عليه.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.



قيمة الإرجاع

ترجع العنصر الذي تم حذفه من الـdict.
أو ترجع القيمة الإفتراضية التي تم تمريريها مكان الباراميتر default في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.



أخطاء محتملة

في حال لم يتم العثور على المفتاح المراد حذف العنصر الذي يملكه و لم تمرر لها قيمة مكان الباراميتر default ترمي الإستثناء KeyError.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم عرضناه كما هو data هنا قمنا باستخراج العنصر الذي يملك المفتاح رقم 2 من الكائن
                    print('Returned element:', data.pop(2))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned element: (2, 'Editor')
Remaining elements: {1: 'Admin', 3: 'Reader'}


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم عرضناه كما هو data هنا حاولنا استخراج العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
                    print('Returned element:', data.pop(5))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

print('Returned element:', data.pop(5))
KeyError: 5


المثال الثالث

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم عرضناه كما هو data هنا حاولنا استخراج العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5 و يوجد قيمة إفتراضية, سيتم إرجاع القيمة الإفتراضية
                    print('Returned element:', data.pop(5, 'No item returned'))

                    # data هنا قمنا بعرض العناصر المتبقية في الكائن
                    print('Remaining elements:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned element: No item returned
Remaining elements: {1: 'Admin', 2: 'Editor', 3: 'Reader'}

الدالة ()get في بايثون

تعريفها

تبحث في كائن الـdict الذي قام باستدعائها عن قيمة المفتاح الذي نمرره لها مكان الباراميتر key و ترجعها.



بناؤها

                  dict.get(key[, default])
                


باراميترات

  • مكان الباراميتر key نمرر مفتاح العنصر الذي نريد الحصول على قيمته.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية يتم إرجاعها فقط في حال لم يتم العثور على عنصر يملك المفتاح الذي مررناه لها مكان الباراميتر key.



قيمة الإرجاع

ترجع قيمة المفتاح المراد البحث عنها في الـdict في حال تم إيجاد عنصر يملك المفتاح.
ترجع None في حال لم يتم إيجاد عنصر يملك المفتاح و لم نمرر لها قيمة إفتراضية.
في حال تم تمرير قيمة إفتراضية لها و لم يتم إيجاد عنصر يملك المفتاح المراد الحصول على قيمته, فإنها ترجع القيمة الإفتراضية.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 2 من الكائن
                    print('Returned value:', data.get(2))
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: Editor


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5, سيتم إظهار خطأ عند تشغيل البرنامج
                    print('Returned value:', data.get(5))
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: None


المثال الثالث

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 5 من الكائن
                    # بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 5 و يوجد قيمة إفتراضية, سيتم إرجاع القيمة الإفتراضية
                    print('Returned value:', data.get(5, 'No value found with the specified key'))
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: No value found with the specified key

الدالة ()keys في بايثون

تعريفها

ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها.

ملاحظة: مصفوفة المفاتيح التي يتم إرجاعها, هي ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.



بناؤها

                  dict.keys()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع مصفوفة نوعها dict_keys فيها جميع المفاتيح الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن المفاتيح الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على المفاتيح من كائن الـdict ينعكس على مصفوفة المفاتيح و العكس كذلك.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # keys في الكائن keys() الذي سترجعه الدالة dict_keys هنا قمنا بتخزين الكائن
                    keys = data.keys()

                    # كما هو keys هنا قمنا بعرض ما يحتويه الكائن
                    print(keys)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_keys([1, 2, 3])


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # keys في الكائن keys() الذي سترجعه الدالة dict_keys هنا قمنا بتخزين الكائن
                    keys = data.keys()

                    # data هنا قمنا بحذف العنصر الذي يملك المفتاح رقم 3 من الكائن
                    data.pop(3)

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # keys تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن keys هنا قمنا بعرض ما يحتويه الكائن
                    print(keys)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_keys([1, 2, 4])

الدالة ()values في بايثون

تعريفها

ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها.

ملاحظة: مصفوفة القيم التي يتم إرجاعها, هي ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.



بناؤها

                  dict.values()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع مصفوفة نوعها dict_values فيها جميع القيم الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن القيم الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على القيم من كائن الـdict ينعكس على مصفوفة القيم و العكس كذلك.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # values في الكائن values() الذي سترجعه الدالة dict_values هنا قمنا بتخزين الكائن
                    values = data.values()

                    # كما هو values هنا قمنا بعرض ما يحتويه الكائن
                    print(values)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_values(['Admin', 'Editor', 'Reader'])


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # values في الكائن values() الذي سترجعه الدالة dict_values هنا قمنا بتخزين الكائن
                    values = data.values()

                    # data هنا قمنا بتغيير قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data[3] = 'Subscriber'

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # values تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن values هنا قمنا بعرض ما يحتويه الكائن
                    print(values)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_values(['Admin', 'Editor', 'Subscriber', 'Moderator'])

الدالة ()items في بايثون

تعريفها

ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها.

ملاحظة: مصفوفة العناصر التي يتم إرجاعها, هي ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.



بناؤها

                  dict.items()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع مصفوفة نوعها dict_items فيها جميع العناصر الموجودة في كائن الـdict الذي قام باستدعائها مع الإشارة إلى أن هذه المصفوفة ليست نسخة عن العناصر الموجودة في كائن الـdict بل هي نفسها. و بالتالي أي تعديل يتم إجراؤه على العناصر من كائن الـdict ينعكس على مصفوفة العناصر و العكس كذلك.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # items في الكائن items() الذي سترجعه الدالة dict_items هنا قمنا بتخزين الكائن
                    items = data.items()

                    # كما هو items هنا قمنا بعرض ما يحتويه الكائن
                    print(items)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_items([(1, 'Admin'), (2, 'Editor'), (3, 'Reader')])


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # items في الكائن items() الذي سترجعه الدالة dict_items هنا قمنا بتخزين الكائن
                    items = data.items()

                    # data هنا قمنا بتغيير قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data[3] = 'Subscriber'

                    # data هنا قمنا بإضافة عنصر جديد على الكائن
                    data[4] = 'Moderator'

                    # items تم تطبيقها أيضاً على الكائن data كما هو. لاحظ أن جميع التغيرات التي فعلناها على الكائن items هنا قمنا بعرض ما يحتويه الكائن
                    print(items)
                  

سنحصل على النتيجة التالية عند التشغيل.

dict_items([(1, 'Admin'), (2, 'Editor'), (3, 'Subscriber'), (4, 'Moderator')])

الدالة ()fromkeys في بايثون

تعريفها

تستخدم لإنشاء dict جديد مبني على قيم مصفوفة نمررها له.
عند إستدعاءها نمرر لها كائن يمثل مصفوفة من أي نوع مكان الباراميتر seq, عناصر هذا الكائن يتم وضعها كمفاتيح في كائن الـ dict الذي سيتم إرجاعه.
مكان الباراميتر value يمكنك تمرير القيمة الإفتراضية التي تريد وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.
و في حال لم تقم بتمرير قيمة إفتراضية مكان الباراميتر value ستكون جميع قيمه تساوي None.



بناؤها

                  dict.fromkeys(seq[, value])
                


باراميترات

  • مكان الباراميتر seq نمرر مصفوفة من أي نوع.

  • الباراميتر value هو باراميتر إختياري, يمكنك أن تمرر مكانه قيمة إفتراضية ليتم وضعها لجميع عناصر كائن الـ dict الذي سيتم إرجاعه.



قيمة الإرجاع

ترجع dict جديد.


المثال الأول

Test.py
                    # يتألف من 4 عناصر tuple هنا قمنا بتعريف
                    aTuple = (1, 2, 3, 4)

                    # None و لم نحدد قيمه الإفتراضية لذلك ستكون جميعها تساوي aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
                    aDict = dict.fromkeys(aTuple)

                    # aDict هنا قمنا بعرض ما يحتوي الكائن
                    print(aDict)
                  

سنحصل على النتيجة التالية عند التشغيل.

{1: None, 2: None, 3: None, 4: None}


المثال الثاني

Test.py
                    # يتألف من 4 عناصر tuple هنا قمنا بتعريف
                    aTuple = (1, 2, 3, 4)

                    # 'Not Specified' و القيمة الإفتراضية لجميع عناصره هي النص aTuple جديد مفاتيحه هي القيم الموجودة في الكائن dict هنا قمنا بإنشاء كائن
                    aDict = dict.fromkeys(aTuple, 'Not Specified')

                    # aDict هنا قمنا بعرض ما يحتوي الكائن
                    print(aDict)
                  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Not Specified', 2: 'Not Specified', 3: 'Not Specified', 4: 'Not Specified'}

الدالة ()setdefaul في بايثون

تعريفها

تستخدم للحصول على قيمة مفتاح موجود في كائن الـdict الذي قام باستدعائها, أو لإضافة عنصر جديد فيه مع إرجاع قيمته أيضاً.
مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.
مكان الباراميتر default يمكنك تمرير القيمة الإفتراضية التي تريد وضعها للعنصر في حال تم إضافته لأنه إفتراضياً إن تم إضافة عنصر جديد ستكون قيمته None.



بناؤها

                  dict.setdefault(key[, default])
                


باراميترات

  • مكان الباراميتر key نمرر مفتاح العنصر الذي إن كان موجوداً في كائن الـdict سيتم إرجاع قيمته فقط, و إن لم يكن موجوداً سيتم إضافته و إرجاع قيمته.

  • الباراميتر default هو باراميتر إختياري, يمكنك أن تمرر مكانه القيمة الإفتراضية التي تريد وضعها للعنصر في حال كان سيتم إضافته.



قيمة الإرجاع

ترجع قيمة المفتاح الذي تم تمريره لها مكان الباراميتر key.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # بعدها قمنا بعرضها ,data هنا قمنا بالحصول على قيمة العنصر الذي يملك المفتاح رقم 3 من الكائن
                    print('Returned value:', data.setdefault(3))
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: Reader


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 4 من الكائن
                    # None مفتاحه الرقم 4 و قيمته data بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 4, سيتم إضافة عنصر جديد على الكائن
                    print('Returned value:', data.setdefault(4))

                    # data هنا قمنا بعرض جميع العناصر الموجودة في الكائن
                    print('data contains:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: None
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: None}


المثال الثالث

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و من ثم قمنا بعرضها ,data هنا حاولنا الحصول على قيمة العنصر الذي يملك المفتاح رقم 4 من الكائن
                    # 'Subscriber' مفتاحه الرقم 4 و قيمته النص data بما أنه لا يوجد عنصر يملك مفتاح يساوي الرقم 4, سيتم إضافة عنصر جديد على الكائن
                    print('Returned value:', data.setdefault(4, 'Subscriber'))

                    # data هنا قمنا بعرض جميع العناصر الموجودة في الكائن
                    print('data contains:', data)
                  

سنحصل على النتيجة التالية عند التشغيل.

Returned value: Subscriber
data contains: {1: 'Admin', 2: 'Editor', 3: 'Reader', 4: 'Subscriber'}

الدالة ()update في بايثون

تعريفها

تستخدم لتحديث قيم عناصر الـdict الذي قام باستدعائها على أساس المفاتيح الموجودة فيه.



بناؤها

                  dict.update([other])
                


باراميترات

other هو باراميتر إختياري نمرر مكانه كائن dict فيه عنصر واحد أو مجموعة العناصر التي نريد تحديث قيمها في كائن الـdict الذي قام باستدعائها.
أي عنصر نمرره مكان الباراميتر other يملك مفتاح غير موجود في كائن الـdict الذي قام باستدعائها سيتم إضافته فيه.



قيمة الإرجاع

ترجع Noneفي حال لم يحدث أي خطأ.


المثال الأول

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data.update({3: 'Subscriber'})

                    # data هنا قمنا بعرض جميع عناصر الكائن
                    print(data)
                  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor', 3: 'Subscriber'}


المثال الثاني

Test.py
                    # data يتألف من ثلاث عناصر, إسمه dict هنا قمنا بتعريف
                    data = {
                    1: 'Admin',
                    2: 'Editor',
                    3: 'Reader'
                    }

                    # و إضافة عنصر جديد لأنه لا يوجد عنصر يمكل مفتاح يساوي 4 data هنا قمنا بتحديث قيمة العنصر الذي يملك المفتاح رقم 3 في الكائن
                    data.update({
                    3: 'Subscriber',
                    4: 'Moderator'
                    })

                    # data هنا قمنا بعرض جميع عناصر الكائن
                    print(data)
                  

سنحصل على النتيجة التالية عند التشغيل.

{1: 'Admin', 2: 'Editor', 3: 'Subscriber', 4: 'Moderator'}

مفهوم الكلاس set في بايثون

الـ set عبارة عن مصفوفة ليس لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد, و لا يمكن تبديل أو حذف قيمها بشكل مباشر.
كما أنه لا يمكنها أن تحتوي على قيم مكررة. أي إذا وضعت فيها نفس القيمة مرتين فإنه سيتم تخزين قيمة واحدة فيها و ليس قيمتين.

النوع set لا يحافظ على الترتيب الذي تم فيه إدخال العناصر لأنه لا يضيف رقم Index لكل عنصر كما يفعل النوع list و النوع tuple.
لذلك لا تستغرب إذا قمت بتخزين مجموعة قيم بداخل set ثم حاولت عرضها. لأنك في كل مرة ستقوم فيها بتشغيل البرنامج من جديد ستتبدل أماكن القيم.


طريقة تعريف set في بايثون

لتعريف set نستخدم الرمز { }.
بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.


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

المثال الأول

Test.py
                      numbers = {10, 20, 30, 40, 50}       # يحتوي على أعداد صحيحة فقط numbers إسمه set هنا قمنا بتعريف
	  print(numbers)                       # ( أي كما قمنا بتعريفه ) كما هو numbers هنا قمنا بعرض محتوى الكائن
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

{40, 10, 50, 20, 30}


في المثال التالي قمنا بتعريف set وضعنا فيه نصوص.

المثال الثاني

Test.py
                        names = {'Rami', 'Sara', 'Nada'}      # يحتوي على نصوص فقط names إسمه set هنا قمنا بتعريف
	  print(names)                          # ( أي كما قمنا بتعريفه ) كما هو names هنا قمنا بعرض ما يحتويه الكائن
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

{'Sara', 'Rami', 'Nada'}


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

المثال الثالث

Test.py
                      data = {1, 'Mhamad', 'Harmush', 1500}      # يحتوي على أعداد صحيحة و نصوص data إسمه set هنا قمنا بتعريف
	  print(data)                                # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

{'Harmush', 1, 1500, 'Mhamad'}


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

المثال الرابع

Test.py
                      # يحتوي على نصوص و لاحظ أننا قمنا بتكرار بعض القيم names إسمه set هنا قمنا بتعريف
	  names = {'Rami', 'Rami', 'Rami', 'Nada', 'Nada', 'Ahmad'}

	  # ( أي كما قمنا بتعريفه ) كما هو. لاحظ أنه لا يحتوي على قيم مكررة names هنا قمنا بعرض ما يحتويه الكائن
	  print(names)
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

{'Ahmad', 'Rami', 'Nada'}

حذف الـ set بواسطة الجملة del في بايثون

الجملة del تستخدم لحذف الـ set كما هي من الذاكرة.


في المثال التالي قمنا بتعريف set وضعنا فيه أرقام. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.

مثال

Test.py
                        # وضعنا فيه أعداد صحيحة arr إسمه set هنا قمنا بتعريف
		  arr = {10, 20, 30, 40, 50}

		  del arr       # كما هو من الذاكرة arr هنا قمنا بحذف الكائن

		  print(arr)    # و الذي في الأصل قمنا بحذفه من الذاكرة لذلك سيظهر خطأ عند التشغيل arr هنا حاولنا عرض ما يحتويه الكائن
		

سنحصل على النتيجة التالية عند التشغيل.

NameError: name 'arr' is not defined

التشييك على قيم الـ ">set بواسطة العامل in في بايثون

العامل in يستخدم للبحث في الـ set عن قيمة معينة أو للمرور على قيمه عند إستخدامه في الحلقة for.


في المثال التالي إستخدمنا العامل in للبحث في الـ set عن قيمة معينة.

المثال الأول

Test.py
                  arr = {'Mhamad', 'Rony', 'Rima', 'Sara'}     # وضعنا فيه مجموعة قيم نصية arr إسمه set هنا قمنا بتعريف

	  x = 'Rima'                                   # وضعنا فيه نص x هنا قمنا بتعريف متغير إسمه

	  print('Is Rima in the set?')
	  print(x in arr)                              # True إذا تم إيجادها سيتم عرض .arr في الكائن x هنا سيتم البحث عن قيمة
	

سنحصل على النتيجة التالية عند التشغيل.

Is Rima in the set?
True


في المثال التالي قمنا بتعريف set وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for.

المثال الثاني

Test.py
        # وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه set هنا قمنا بتعريف
	  names = {'Rami', 'Sara', 'Nada', 'Mhamad', 'Salem'}

	  # و من ثم سيتم طباعتها x في المتغير names في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن
	  for x in names:
	  print(x)
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

Nada
Salem
Mhamad
Rami
Sara

دوال الكلاس set في بايثون

إسم الدالة مع تعريفها
add(elem) تستخدم لإضافة عنصر جديد في الـset الذي قام باستدعائها.
شاهد المثال »
discard(elem) تستخدم لحذف عنصر محدد من الـset الذي قام باستدعائها.
مكان الباراميتر elem نمرر كائن قيمته تطابق قيمة العنصر الذي نريد حذفه.
شاهد المثال »
remove(elem) تستخدم لحذف عنصر محدد من الـset الذي قام باستدعائها.
مكان الباراميتر elem نمرر كائن قيمته تطابق قيمة العنصر الذي نريد حذفه.
ملاحظة: الفرق بينها و بين الدالة discard() أنها ترمي الإستثناء KeyError في حال لم يتم إيجاد عنصر في الـset يملك نفس قيمة الكائن الذي مررناه مكان الباراميتر elem.
شاهد المثال »
clear() تستخدم لحذف جميع عناصر الـset الذي قام باستدعائها.
شاهد المثال »
pop() تستخدم لإرجاع قيمة عنصر يتم إختياره بشكل عشوائي من الـset الذي قام باستدعائها, بعدها يتم حذفه منه.
شاهد المثال »
copy() ترجع نسخة من الـset الذي قام باستدعائها.
شاهد المثال »
difference(*sets) ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و الغير موجودة في كل set نمرره لها مكان الباراميتر sets*.
شاهد المثال »
difference_update(*sets) تقارن الـset الذي قام باستدعائها مع كل set نمرره لها مكان الباراميتر sets*.
بعدها تحذف من الـset الذي قام باستدعائها العناصر المشتركة بينهم.
شاهد المثال »
intersection(*sets) ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و في كل set نمرره لها مكان الباراميتر sets*.
شاهد المثال »
intersection_update(*sets) تقارن الـset الذي قام باستدعائها مع كل set نمرره لها مكان الباراميتر sets*.
بعدها تحذف من الـset الذي قام باستدعائها العناصر الغير مشتركة بينهم.
شاهد المثال »
symmetric_difference(anotherSet) ترجع set جديد يحتوي على العناصر الغير موجودة في كل من الـset الذي قام باستدعائها و في الـset الذي نمرره لها مكان الباراميتر anotherSet.
شاهد المثال »
symmetric_difference_update(anotherSet) تقارن الـset الذي قام باستدعائها مع الـset الذي نمرره لها مكان الباراميتر anotherSet.
بعدها تضع في الـset الذي قام باستدعائها العناصر المشتركة بينهما فقط و تمسح أي عناصر آخرى كانت موجودة فيه.
شاهد المثال »
union(sets*) ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و العناصر الموجودة في كل set نمرره لها مكان الباراميتر sets*.
شاهد المثال »
update(sets*) تقارن عناصر الـset الذي قام باستدعائها مع العناصر الموجودة في كل set نمرره لها مكان الباراميتر sets*.
بعدها تضع في الـset الذي قام باستدعائها العناصر المشتركة و الغير مشتركة بينهم.
شاهد المثال »
isdisjoint(anotherSet) تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.
ترجع True إذا كانا لا يحتوان على عناصر قيمها متساوية. و ترجع False إن لم يكونا كذلك.
شاهد المثال »
issuperset(anotherSet) تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.
ترجع True إذا كانت جميع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet موجودة في الـset الذي قام باستدعائها.
غير ذلك ترجع False.
شاهد المثال »
issubset(anotherSet) تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.
ترجع True إذا كانت جميع عناصر الـset الذي قام باستدعائها موجودة في الـset الذي نمرره لها مكان الباراميتر anotherSet.
غير ذلك ترجع False.
شاهد المثال »

دوال جاهزة في بايثون للتعامل مع الـ set

إسم الدالة مع تعريفها
len(set) ترجع عدد صحيح يمثل عدد عناصر الـset الذي نمرره لها عند إستدعاءها.
شاهد المثال »
min(set) ترجع أصغر قيمة موجودة في الـset الذي نمرره لها عند إستدعاءها.
شاهد المثال »
max(set) ترجع أكبر قيمة في الـset الذي نمرره لها عند إستدعاءها.
شاهد المثال »
set(sequence) ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعاءها ككائن من الكلاس الـset.
شاهد المثال »

Python الدالة isdisjoint()

تعريفها

تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.
ترجع True إذا كانا لا يحتوان على عناصر قيمها متساوية. و ترجع False إن لم يكونا كذلك.



بناؤها

set.isdisjoint(anotherSet)
  


باراميترات

مكان الباراميتر anotherSet نمرر الـset الذي سيتم مقارنة عناصره مع عناصر الـset الذي قام باستدعائها.



قيمة الإرجاع

ترجع True إذا كان الـset الذي قام باستدعائها و الـset الذي مررناه لها لا يحتوان على عنصر واحد على الأقل قيمته متساوية.
غير ذلك ترجع False.


مثال

Test.py
# وضعنا فيهم أرقام صحيحة set هنا قمنا بتعريف ثلاثة
	  set1 = {1, 2, 3}
	  set2 = {1, 7}
	  set3 = {4, 5, 6}

	  # لأنهما يحتويان على قيم متساوية False سترجع .set2 و set1 عند مقارنة عناصر الكائنين isdisjoint() هنا قمنا بعرض ما سترجعه الدالة
	  print('set1 disjoint set2?', set1.isdisjoint(set2))

	  # لأنهم لا يحتويان على قيم متساوية True سترجع .set3 و set1 عند مقارنة عناصر الكائنين isdisjoint() هنا قمنا بعرض ما سترجعه الدالة
	  print('set1 disjoint set3?', set1.isdisjoint(set3))
    

سنحصل على النتيجة التالية عند التشغيل.

set1 disjoint set2? False
set1 disjoint set3? True

Python الدالة issuperset()

تعريفها

تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.

ترجع True إذا كانت جميع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet موجودة في الـset الذي قام باستدعائها.
غير ذلك ترجع False.



بناؤها

set.issuperset(anotherSet)
  


باراميترات

مكان الباراميتر anotherSet نمرر الـset الذي سيتم مقارنة عناصره مع عناصر الـset الذي قام باستدعائها.



قيمة الإرجاع

ترجع True إذا كانت جميع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet موجودة في الـset الذي قام باستدعائها.
غير ذلك ترجع False.


المثال الأول

Test.py
# وضعنا فيهما أرقام صحيحة set هنا قمنا بتعريف إثنين
	  set1 = {1, 2, 3, 4, 5}
	  set2 = {1, 2, 3}

	  # set2 يحتوي على جميع عناصر set1 لأن True سترجع .set2 و set1 عند مقارنة عناصر الكائنين issuperset() هنا قمنا بعرض ما سترجعه الدالة
	  print(set1.issuperset(set2))
    

سنحصل على النتيجة التالية عند التشغيل.

True


المثال الثاني

Test.py
# وضعنا فيهما أرقام صحيحة set هنا قمنا بتعريف إثنين
	  set1 = {1, 2, 3}
	  set2 = {1, 2, 3, 4, 5}

	  # set2 لا يحتوي على جميع عناصر set1 لأن False سترجع .set2 و set1 عند مقارنة عناصر الكائنين issuperset() هنا قمنا بعرض ما سترجعه الدالة
	  print(set1.issuperset(set2))
    

سنحصل على النتيجة التالية عند التشغيل.

False

Python الدالة issubset()

تعريفها

تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet.

ترجع True إذا كانت جميع عناصر الـset الذي قام باستدعائها موجودة في الـset الذي نمرره لها مكان الباراميتر anotherSet.
غير ذلك ترجع False.



بناؤها

                  set.issubset(anotherSet)
  


باراميترات

مكان الباراميتر anotherSet نمرر الـset الذي سيتم مقارنة عناصره مع عناصر الـset الذي قام باستدعائها.



قيمة الإرجاع

ترجع True إذا كانت جميع عناصر الـset الذي قام باستدعائها موجودة في الـset الذي نمرره لها مكان الباراميتر anotherSet.
غير ذلك ترجع False.


المثال الأول

Test.py
                    # وضعنا فيهما أرقام صحيحة set هنا قمنا بتعريف إثنين
	  set1 = {1, 2, 3}
	  set2 = {1, 2, 3, 4, 5}

	  # set1 يحتوي على جميع عناصر set2 لأن True سترجع .set2 و set1 عند مقارنة عناصر الكائنين issubset() هنا قمنا بعرض ما سترجعه الدالة
	  print(set1.issubset(set2))
	

سنحصل على النتيجة التالية عند التشغيل.

True


المثال الثاني

Test.py
                    # وضعنا فيهما أرقام صحيحة set هنا قمنا بتعريف إثنين
	  set1 = {1, 2, 3, 4, 5}
	  set2 = {1, 2, 3}

	  # set1 لا يحتوي على جميع عناصر set2 لأن False سترجع .set2 و set1 عند مقارنة عناصر الكائنين issubset() هنا قمنا بعرض ما سترجعه الدالة
	  print(set1.issubset(set2))
	

سنحصل على النتيجة التالية عند التشغيل.

False

Python الدالة len()

تعريفها

ترجع عدد صحيح يمثل عدد عناصر الـset الذي نمرره لها عند إستدعاءها.



بناؤها

                  len(set)
  


باراميترات

مكان الباراميتر set نمرر الـset الذي نريد الحصول على عدد عناصره.



قيمة الإرجاع

ترجع عدد صحيح يمثل عدد عناصر الـset الذي نمرره لها عند إستدعاءها.


مثال

Test.py
                    # وضعنا فيه مجموعة أعداد صحيحة aSet إسمه set هنا قمنا بتعريف
	  aSet = {1, 2, 3, 4, 5}

	  # len() الذي سترجعه الدالة aSet هنا قمنا بعرض عدد عناصر الكائن
	  print('Array length is:', len(aSet))
	

سنحصل على النتيجة التالية عند التشغيل.

Array length is: 5

Python الدالة min()

تعريفها

ترجع أصغر قيمة في الـset الذي نمرره لها عند إستدعاءها.



بناؤها

min(set)
  


باراميترات

مكان الباراميتر set نمرر الـset الذي نريد الحصول على أصغر قيمة فيه.



قيمة الإرجاع

ترجع أصغر قيمة في الـset الذي نمرره لها عند إستدعاءها.


مثال

Test.py
# وضعنا فيه مجموعة أعداد صحيحة aSet إسمه set هنا قمنا بتعريف
	  aSet = {5, 2, 4, 6, 3}

	  # min() و التي سترجعها الدالة aSet هنا قمنا بعرض اصغر قيمة في الكائن
	  print('Minimum value is:', min(aSet))
    

سنحصل على النتيجة التالية عند التشغيل.

Minimum value is: 2

Python الدالة max()

تعريفها

ترجع أكبر قيمة في الـset الذي نمرره لها عند إستدعاءها.



بناؤها

max(set)
  


باراميترات

مكان الباراميتر set نمرر الـset الذي نريد الحصول على أكبر قيمة فيه.



قيمة الإرجاع

ترجع أكبر قيمة في الـset الذي نمرره لها عند إستدعاءها.


مثال

Test.py
# وضعنا فيه مجموعة أعداد صحيحة aSet إسمه set هنا قمنا بتعريف
	  aSet = {5, 2, 4, 6, 3}

	  # max() و التي سترجعها الدالة aSet هنا قمنا بعرض أكبر قيمة في الكائن
	  print('Maximum value is:', max(aSet))
    

سنحصل على النتيجة التالية عند التشغيل.

Maximum value is: 6

Python الدالة set()

تعريفها

ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعاءها ككائن من الكلاس الـset.



بناؤها

                  set(sequence)
  


باراميترات

مكان الباراميتر sequence نمرر كائن يمثل كائن يمثل مجموعة عناصر.



قيمة الإرجاع

ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعاءها ككائن من الكلاس الـset.


المثال الأول

Test.py
                    # وضعنا فيه مجموعة أعداد صحيحة aList إسمه list هنا قمنا بتعريف
	  aList = [1, 2, 3, 4, 5]

	  # aSet الذي سترجعه في الكائن set بعدها قمنا بتخزين كائن الـ .set لترجع نسخة منه ككائن من الكلاس aList على الكائن set() هنا قمنا باستدعاء الدالة
	  aSet = set(aList)

	  # aSet هنا قمنا بعرض ما يحتويه الكائن
	  print(aSet)
	

سنحصل على النتيجة التالية عند التشغيل.

{1, 2, 3, 4, 5}

Python الدالة add()

تعريفها

تستخدم لإضافة عنصر جديد في الـset الذي قام باستدعائها.



بناؤها

                  set.add(elem)
  


باراميترات

مكان الباراميتر x نمرر الكائن الذي نريد إضافته في الـset.



قيمة الإرجاع

لا ترجع قيمة.


مثال

Test.py
                    aSet = {'Apple', 'Banana', 'Mango'}    # وضعنا فيه 3 عناصر aSet إسمه set هنا قمنا بتعريف
	  print('Before:', aSet)                 # aSet هنا قمنا بعرض ما يحتويه الكائن

	  aSet.add('Orange')                     # aSet هنا قمنا بإضافة نص كعنصر جديد في آخر الكائن
	  print('After: ', aSet)                 # من جديد aSet هنا قمنا بعرض ما يحتويه الكائن
	

سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.

Before: {'Apple', 'Banana', 'Mango'}
After:  {'Apple', 'Orange', 'Banana', 'Mango'}