بيانات التسلسل المجموعة tuple

بيانات التسلسل المجموعة tuple

بيانات التسلسل المجموعة tuple

تابع بيانات التسلسل: تعد المجموعة ( tuple ) مشابهة للقائمة ( list ) الا ان المجموعة لا يمكن تعديل عناصرها بعد تعيينها، بمجرد انشائها لا يمكن تغير شىء فيها.

المجموعة tuple

يتم انشاء المجموعة من خلال وضع العناصر بين الاقواس ( ) مفصولة بفاصلة ( , ) ، وتعتبر الاقواس اختيارية ولكن يفضل استخدامها.

يمكن ان تحتوي القائمة علي عدد غير محدد من العناصر ومن كل الانواع مثلها مثل القائمة.

مثال

mytup = ()
print(mytup)

كان هذا مثال عن انشاء قائمة فارغة كما تلاحظ للتصريح عن مجموعة نستخدم الاقواس الدائرية () اما في القائمة نستخدم الاقواس المربعة [].

مثال

mytup = (1, 2, 3)
print(mytup)

في المثال السابق مجموعة تحتوي علي عناصر رقمية integer ، كما ذكرنا في البداية يمكن التصريح عن المجموعة بدون استخدام الاقواس.

مثال

mytup = 1, 2, 3
print(mytup)

ولكن من الافضل استخدام الاقواس ، يمكن ايضاً ان تحتوي القائمة علي انواع مختلفة من العناصر.

مثال

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(mytup)

بما ان المجموعة من بيانات التسلسل فانها تخضع لجميع عمليات الفهرسة التي استخدمناها سابقاً في ج1 ، ج2 وهي : [start:stop:step].

مثال استخراج عنصر من المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(mytup[0])

مثال استخراج عنصر فرعي

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(mytup[2][2])

مثال قص المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(mytup[:2])
print(mytup[2:])

مثال دمج المجموعات

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
x = mytup[2:] + mytup[:2]
print(x)

مثال مضاعفة مجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
x = mytup[2:] * 4
print(x)

مثال معكوس المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
x = mytup[::-1]
print(x)

مثال الحصول علي رقم فهرس عنصر في المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(mytup.index("ahmed"))

مثال الحصول علي طول المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
print(len(mytup))

مثال حذف عنصر من المجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
del mytup[0]
print(mytup)

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

مثال

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
mytup = mytup[0:1] + mytup[2:]
print(mytup)

في المثال السابق اعدنا بناء المجموعة من خلال قص ودمج المجموعة القديمة.

حذف عنصر من قائمة داخل مجموعة

رغم انه لا يمكن تعديل عناصر المجموعة الا انه باستطاعتنا تعديل عناصر قائمة داخل مجموعة.

مثال

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
del mytup[2][:2]
print(mytup)

مثال اضافة عناصر للقائمة الفرعية داخل مجموعة

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
mytup[2].append(4)
print(mytup)

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

مثال خطا

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
mytup[2] = [4,5,6]
print(mytup)

هذا الكود سوف يعطي خطا والسبب اننا نحاول تعديل عنصر في المجموعة

مثال صحيح

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
mytup[2][:] = [4,5,6]
print(mytup)

هذا الكود صحيح لاننا لم نتعرض للمجموعة في شىء فقط جعلنا التعديل يتم علي عناصر القائمة الداخلية ، ويمكن ايضاً اضافة العناصر الي نهاية المجموعة.

مثال

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
l = len(mytup[2])
mytup[2][ l : ] = [4,5,6]
print(mytup)

في المثال السابق استخدمنا دالة len لنعرف عدد العناصر في القائمة لنستخدمه رقم بداية عند اضافة العناصر الجديدة.

حذف مجموعة

لا يمكن تعديل او حذف عناصر المجموعة ولكن يمكن حذف كامل المجموعة.

مثال

mytup = ( 12121, "ahmed", [1,2,3], ("khaled", "abc") )
del mytup
print(mytup)

كما تلاحظ لم يعد هناك شىء باسم mytup وسوف يحدث خطا عدم وجود mytup عند محاولة طباعته.

عوامل التحقق من العضوية

في بايثون يتم استخدام عوامل التحقق ( in, not in ) للتحقق من (وجود/ عدم وجود) عنصر ضمن بيانات متسلسله مثل النصوص ، القوائم ، المجموعات ، الخ ، .... ، وترجع قيمة منطقية True او False.

عامل ( في / in )

لقد استخدمنا من قبل الكلمة index لارجاع رقم الفهرس لعنصر محدد داخل القائمة او المجموعة ولكن اذا كان العنصر غير موجود سوف تحدث مشكلة ، ويتوقف البرنامج، ولتفادي تلك المشكلة سوف نتحقق من عضوية العنصر قبل التعامل معه.

مثال التحقق من وجود عنصر في مجموعة

mytup = ("abc", "def", "kkk")
print("kkk" in mytup)

في المثال السابق قائمة تحتوي علي ثلاث عناصر من النوع النصي ، وعلي السطر الثاني قمنا بالتحقق من عضوية kkk داخل المجموعة mytup ، والنتيجة هي True بمعني انه موجود في المجموعة.

المجموعة هي تسلسل والنصوص بداخلها ايضاً تسلسلات، وهذا يعني انه يمكننا التحقق من عضوية عنصر داخل تسلسل نصي موجود داخل مجموعة.

مثال

mytup = ("foo", "bar", "baz")
print("r" in mytup[1])

في المثال السابق قمنا بالتحقق من وجود حرف r داخل العنصر الثاني في المجموعة "bar" والنتيجة هي True ، وهذا لان التسلسل "bar" يحتوي علي حرف r.

اذا كان العنصر غير موجود في التسلسل فسوف تكون النتيجة False بمعني عدم وجود العنصر.

مثال

mytup = ("foo", "bar", "baz")
print("r" in mytup[2])

والنتيجة هي False لان التسلسل "baz" لا يحتوي علي عنصر "r".

عامل ( ليس في / not in )

ان كانت عامل in للتحقق من وجود العنصر فعامل not in يتحقق من عدم وجود العنصر ، هذا يعني ان القيم العائدة معكوسة عن عامل in لاننا نسال "هل هو ليس موجود".

مثال

mytup = ("foo", "bar", "baz")
print("r" not in mytup[2])

هذا المثال هو نفس المثال السابق له ولكن اضفنا عامل not in بدلاً من عامل in. عند التشغيل سوف تلاحظ ان الناتج True عكس ناتج المثال السابق False والسبب في صيغة السؤال ( في / ليس في ) ، وان كان العنصر موجود فسوف يكون الناتج False بمعني انه موجود في المجموعة.

مثال

mytup = ("foo", "bar", "baz")
print("r" not in mytup[1])

لاحظ اختلاف رقم الفهرس في الامثلة. في هذا المثال نتحقق من عدم وجود حرف r في العنصر الثاني في القائمة، والناتج هو False لان العنصر "r" موجود في التسلسل "bar".

لماذا تستخدم المجموعة tuple ؟

ربما بدر الي ذهنك انه لماذا قد تحتاج الي مجموعة لا يمكن تعديل ما بداخلها ، والاجابة هي ان المجموعة اسرع من القائمة عند تنفيذ العمليات عليها ، في بعض الاوقات قد تحتاج الي ان تضمن عدم تغير البيانات داخل حاويتها وهذا ما توفرة المجموعة tuple.

الاختبار

داخل المحرر التالي قم بالتصريح عن دالة جديدة باسم exists تمتلك العوامل التالية بالترتيب:

  • names - مجموعة
  • name - نص

بعد انشاء الدالة وعواملها؛ من داخل كتلة الدالة ابداء الكتابة وافعل الاتي:

قم باستخدام عامل in للتحقق من وجود العنصر name في المجموعة names ، ثم قم بارجاع ناتج التحقق بواسطة return وليس print.

سوف يقوم النظام لدينا بتشغيل الدالة خاصتك وارسال البيانات اليها.

ان كنت لا تعرف كيفية التصريح عن الدوال وعوامل الدالة وارجاع البيانات قم بمراجعة درس مقدمة عن الدوال.

حلول الاعضاء
فتح الحلول مقابل 5
مقفل
output
terminal

Next

التعليقات

no comments found.
  • من خلال الضغط علي زر {;} في شريط الادوات يمكنك اضافة اكواد بايثون الي التعليق للتجربة اون لاين.
  • برجاء مراعاة قواعد الكتابة، والادب.