بايثونالكلاس tuple
- مفهوم الكلاس tuple
- الوصول لعناصر الـ tuple
- تجزيء الـ tuple
- إستخدام العوامل + و * و in مع الـ tuple
- دوال الكلاس tuple
- دوال جاهزة في بايثون للتعامل مع الـ tuple
- فائدة النوع tuple
مفهوم الكلاس tuple
الـ tuple عبارة عن مصفوفة لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و لا يمكن تبديل قيمها.
طريقة تعريف tuple
لتعريف tuple نستخدم الرمز ( ).
بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين. و يمكنك تحديد نوع و عدد العناصر التي تريد وضعها فيه فقط.
في المثال التالي قمنا بتعريف tuple فارغ, أي لا يحتوي أي عنصر.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بتعريف tuple يتألف من عنصر واحد فقط.
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
وضع فاصلة بعد القيمة 10 هنا يعتبر أمر إجباري حتى يفهم مترجم بايثون أنك تنوي تعريف tuple و ليس متغير عادي قيمته 10.
كما أنه لا حاجة لوضع فاصلة إضافية كما فعلنا هنا في حال كان الـ tuple يحتوي على أكثر من قيمة.
في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة.
المثال الثالث
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص.
المثال الرابع
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة و نصوص.
المثال الخامس
سنحصل على النتيجة التالية عند التشغيل.
الوصول لعناصر الـ tuple
للوصول لأي عنصر في الـ tuple بهدف الحصول على قيمته طبعاً فإننا نستخدم رقم الـ Index الخاص بالعنصر.
في بايثون, يمكنك الوصول للعناصر الموجودة في الـ tuple بطريقتين:
- في حال أردت الوصول لعناصر الـ tuple من اليسار إلى اليمين, أي من أول عنصر تم إدخاله, فإن الـ Index لأول عنصر سيكون 0.
- في حال أردت الوصول لعناصر الـ tuple من اليمين إلى اليسار, أي من آخر عنصر تم إدخاله, فإن الـ Index لآخر عنصر سيكون 1-.
في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض قيمة أول و ثاني عنصر فيه.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
Sara
في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض قيمة آخر و قبل آخر عنصر فيه.
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
Mhamad
في المثال التالي قمنا بتعريف tuple وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for.
المثال الثالث
سنحصل على النتيجة التالية عند التشغيل.
Sara
Nada
Mhamad
Salem
في المثال التالي قمنا بتعريف tuple وضعنا فيه أعداد صحيحة. بعدها قمنا بحساب ناتج جمع جميع القيم الموضوعة فيه باستخدام الحلقة for.
المثال الرابع
سنحصل على النتيجة التالية عند التشغيل.
تجزيء الـ tuple
المقصود من تجزيء الـ tuple هو إرجاع جزء منه سواء لعرضه أو تخزينه.
في المثال التالي قمنا بتعريف tuple وضعنا فيه أرقام. بعدها قمنا بعرض جزء منه.
فعلياً قمنا بعرض العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك Index رقم 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك Index رقم 3.
أي قمنا بعرض قيم العناصر arr[0] - arr[1] - arr[2].
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بتعريف tuple وضعنا فيه أرقام. بعدها قمنا بنسخ جزء منه و وضعه في tuple ثانية.
فعلياً قمنا بنسخ العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك Index رقم 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك Index رقم 3.
أي قمنا بنسخ قيم العناصر arr[0] - arr[1] - arr[2].
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
إستخدام العوامل + و * و in مع الـ tuple
العامل | دواعي الإستخدام |
---|---|
+ | العامل + يستخدم لدمج tuple أو أكثر في tuple واحد. |
* | العامل * لوضع لتكرار قيمة معينة عدة مرات في الـ tuple. |
in | العامل in يستخدم للبحث في الـ tuple عن قيمة معينة أو للمرور على قيمه عند إستخدامه في الحلقة for كما فعلنا في بعض الأمثلة السابقة. |
في المثال التالي قمنا بتخزين إثنين tuple في tuple واحد بواسطة العامل +.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي قمنا بتعريف tuple وضعنا فيه 3 عناصر تملك 'python' كقيمة لهم بواسطة العامل *.
المثال الثاني
سنحصل على النتيجة التالية عند التشغيل.
عند تكرار قيم في الـ tuple بواسطة العامل *, فإنك مجبر على وضع فاصلة بعد القيمة التي وضعتها في القوس.
في حال لم تضع فاصلة بعد القيمة, لن يعرف مترجم بايثون أنك كنت تنوي تعريف tuple.
في المثال التالي إستخدمنا العامل in للبحث في الـ tuple عن قيمة معينة.
المثال الثالث
سنحصل على النتيجة التالية عند التشغيل.
True
دوال الكلاس tuple
إسم الدالة مع تعريفها | |
---|---|
1 | count(x)
تستخدم للبحث في الـtuple الذي قام باستدعائها عن قيمة معينة. ترجع عدد صحيح يمثل كم مرة تم إيجاد عنصر عنده نفس القيمة التي مررناها لها مكان البارميتر x. شاهد المثال |
2 | index(x[, start[, end]])
تبحث في الـtuple الذي قام باستدعائها عن Index أول عنصر يملك القيمة التي نمرره لها مكان الباراميتر x و ترجعه. في حال لم يتم العثور على القيمة المراد معرفة مكانها ترمي الإستثناء ValueError. شاهد المثال |
دوال جاهزة في بايثون للتعامل مع الـ tuple
إسم الدالة مع تعريفها | |
---|---|
1 | len(tuple)
ترجع عدد صحيح يمثل عدد عناصر الـtuple الذي نمرره لها عند إستدعائها. شاهد المثال |
2 | min(tuple)
ترجع أصغر قيمة موجودة في الـtuple الذي نمرره لها عند إستدعائها. شاهد المثال |
3 | max(tuple)
ترجع أكبر قيمة في الـtuple الذي نمرره لها عند إستدعائها. شاهد المثال |
4 | tuple(sequence)
ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعائها ككائن من الكلاس الـtuple. شاهد المثال |
فائدة النوع tuple
بما أنك وجدت أن النوع tuple هو نوع محدود نوعاً ما مقارنةً بالنوع list الذي درسته في الدرس السابق فلعلك تتساءل الآن حول فائدته.
هذه الأسباب هي ما قد يدفعك إلى استعمال النوع tuple:
- الوصول لعناصر موضوعة في tuple أسرع من الوصول لعناصر موضوعة في list.
- قيمه تعتبر آمنة حيث يمكن قراءتها فقط.
- في حال كنت تستخدم النوع dictionary و الذي يتم وضع البيانات فيه كجدول يتألف من مفاتيح ( Keys ) و قيم ( Values ). فإنه يمكنك تمرير tuple تحتوي على أرقام أو نصوص كمفاتيح له.