بايثونالكلاس tuple
- مفهوم الكلاس
tuple
- الوصول لعناصر كائن
tuple
- الحصول على عناصر محددة في
tuple
- العوامل التي يمكن استخدامها مع
tuple
- دوال الكلاس
tuple
- دوال جاهزة في بايثون للتعامل مع الـ
tuple
- فائدة النوع
tuple
مفهوم الكلاس tuple
النوع tuple
يمثل مصفوفة لها حجم ثابت، يمكنها تخزين قيم من مختلف الأنواع في وقت واحد و لكن لا يمكن تبديل قيمها.
طريقة تعريف tuple
لتعريف tuple
نستخدم الرمز ( )
و بداخله نمرر القيم بشكل مباشر له مع الإشارة إلى أنه يجب وضع فاصلة بين كل قيمتين.
في المثال التالي قمنا بتعريف tuple
فارغ، أي لا يحتوي أي عنصر.
المثال الأول
A = () # A فارغ إسمه tuple هنا قمنا بتعريف print(A) # ( أي كما قمنا بتعريفه ) كما هو A هنا قمنا بعرض ما يحتويه الكائن
النتيجة
في المثال التالي قمنا بتعريف tuple
يتألف من عنصر واحد فقط.
المثال الثاني
A = (10,) # يتألف من عنصر واحد قيمته 10 tuple هنا قمنا بتعريف print(A) # ( أي كما قمنا بتعريفه ) كما هو A هنا قمنا بعرض ما يحتويه الكائن
النتيجة
في المثال السابق وضع الفاصلة بعد القيمة 10 هنا يعتبر أمر إجباري حتى يفهم مترجم بايثون أننا نريد تعريف tuple
و ليس متغير عادي قيمته 10. و بالطبع لا حاجة لوضع فاصلة إضافية كما فعلنا في حال كان الـ tuple
يحتوي على أكثر من قيمة.
في المثال التالي قمنا بتعريف tuple
وضعنا فيه أعداد صحيحة.
المثال الثالث
numbers = (10, 20, 30, 40, 50) # يحتوي على أعداد صحيحة فقط numbers إسمه tuple هنا قمنا بتعريف print(numbers) # ( أي كما قمنا بتعريفه ) كما هو numbers هنا قمنا بعرض محتوى الكائن
النتيجة
في المثال التالي قمنا بتعريف tuple
وضعنا فيه نصوص.
المثال الرابع
names = ('Rami', 'Sara', 'Nada') # يحتوي على نصوص فقط names إسمه tuple هنا قمنا بتعريف print(names) # ( أي كما قمنا بتعريفه ) كما هو names هنا قمنا بعرض ما يحتويه الكائن
النتيجة
في المثال التالي قمنا بتعريف tuple
وضعنا فيه أعداد صحيحة و نصوص.
المثال الخامس
data = (1, 'Mhamad', 'Harmush', 1500) # يحتوي على أعداد صحيحة و نصوص data إسمه tuple هنا قمنا بتعريف print(data) # ( أي كما قمنا بتعريفه ) كما هو data هنا قمنا بعرض ما يحتويه الكائن
النتيجة
الوصول لعناصر كائن tuple
للوصول لأي عنصر موجود في tuple
بهدف الحصول على قيمته طبعاً فإننا نستخدم رقم الفهرس ( Index ) الخاص بالعنصر.
في بايثون، يمكنك الوصول للعناصر الموجودة في tuple
بطريقتين:
- في حال أردت الوصول للعناصر من اليسار إلى اليمين، أي من أول عنصر تم إدخاله، فإن رقم فهرس أول عنصر سيكون
0
- في حال أردت الوصول للعناصر من اليمين إلى اليسار، أي من آخر عنصر تم إدخاله، فإن رقم فهرس آخر عنصر سيكون
-1
في المثال التالي قمنا بتعريف tuple
وضعنا فيه نصوص. بعدها قمنا بعرض قيمة أول و ثاني عنصر فيه.
المثال الأول
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem') print(names[0]) # names هنا قمنا بعرض قيمة أول عنصر موجود في الكائن print(names[1]) # names هنا قمنا بعرض قيمة ثاني عنصر موجود في الكائن
النتيجة
Sara
في المثال التالي قمنا بتعريف tuple
وضعنا فيه نصوص. بعدها قمنا بعرض قيمة آخر و قبل آخر عنصر فيه.
المثال الثاني
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem') print(names[-1]) # names هنا قمنا بعرض قيمة آخر عنصر موجود في الكائن print(names[-2]) # names هنا قمنا بعرض قيمة ما قبل آخر عنصر موجود في الكائن
النتيجة
Mhamad
في المثال التالي قمنا بتعريف tuple
وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for
.
المثال الثالث
# وضعنا فيه قيم نصية تمثل أسماء أشخاص names إسمه tuple هنا قمنا بتعريف names = ('Rami', 'Sara', 'Nada', 'Mhamad', 'Salem') # و من ثم سيتم طباعتها x في المتغير names في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن for x in names: print(x)
النتيجة
Sara
Nada
Mhamad
Salem
في المثال التالي قمنا بتعريف tuple
وضعنا فيه أعداد صحيحة. بعدها قمنا بحساب ناتج جمع جميع القيم الموضوعة فيه باستخدام الحلقة for
.
المثال الرابع
# وضعنا فيه أعداد صحيحة numbers إسمه tuple هنا قمنا بتعريف numbers = (10, 20, 30, 40, 50) # numbers هنا قمنا بتعريف متغير سنستخدمه لحفظ ناتج جمع القيم الموجودة في الكائن total = 0 # total و من ثم سيتم إضافتها على قيمة المتغير x في المتغير numbers في كل مرة سيتم وضع قيمة عنصر من عناصر الكائن for x in numbers: total += x # numbers و التي ستساوي ناتج جمع القيم الموجودة في الكائن total هنا قمنا بطباعة قيمة المتغير print('Total sum is:', total)
النتيجة
الحصول على عناصر محددة في tuple
باستخدام الرمز [ : ]
يمكننا إرجاع عناصر محددة من الكائن tuple
سواء لعرضها أو تخزينها.
في المثال التالي قمنا بتعريف tuple
وضعنا فيه أرقام. بعدها قمنا بعرض جزء منه.
فعلياً قمنا بعرض العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك رقم الفهرس 0 وصولاً إلى العنصر الموجود قبل العنصر الذي يملك رقم الفهرس 3.
أي قمنا بعرض قيم العناصر arr[0]
- arr[1]
- arr[2]
.
المثال الأول
arr = (10, 20, 30, 40, 50) # وضعنا فيه أعداد صحيحة arr إسمه tuple هنا قمنا بتعريف print(arr[0: 3]) # arr هنا قمنا بعرض أول ثلاث عناصر موجودة في الكائن
النتيجة
في المثال التالي قمنا بتعريف tuple
وضعنا فيه أرقام. بعدها قمنا بنسخ جزء منه و وضعه في tuple
ثانية.
فعلياً قمنا بنسخ العناصر الموجودة فيه إبتداءاً من العنصر الذي يملك رقم فهرس 0 وصولاً إلى العنصر الموجود قبل العنصر الذي رقم فهرس 3.
أي قمنا بنسخ قيم العناصر arr[0]
- arr[1]
- arr[2]
.
المثال الثاني
arr = (10, 20, 30, 40, 50) # وضعنا فيه أعداد صحيحة arr إسمه tuple هنا قمنا بتعريف arr2 = arr[0: 3] # arr2 و وضعها في كائن جديد إسمه arr هنا قمنا بنسخ أول ثلاث عناصر موجودة في الكائن print(arr2) # arr2 هنا قمنا بعرض ما يحتويه الكائن
النتيجة
العوامل التي يمكن استخدامها مع tuple
العامل | دواعي الإستخدام |
---|---|
+ |
العامل + يستخدم لدمج tuple أو أكثر في tuple واحد. |
* |
العامل * يستخدم لوضع قيمة معينة و تكرارها عدة مرات في الـ tuple . |
in |
العامل in يستخدم للبحث عن قيمة محددة في الـ tuple أو للمرور على قيمه في حال استخدامه في الحلقة for . |
في المثال التالي قمنا بتخزين إثنين tuple
في tuple
واحد بواسطة العامل +
.
المثال الأول
arr1 = (1, 2, 3) # وضعنا فيه أعداد صحيحة arr1 إسمه tuple هنا قمنا بتعريف arr2 = (4, 5, 6) # وضعنا فيه أعداد صحيحة arr2 إسمه tuple هنا قمنا بتعريف arr3 = arr1 + arr2 # arr2 و arr1 وضعنا فيه قيم الكائنين arr3 إسمه tuple هنا قمنا بتعريف print(arr3) # arr3 هنا قمنا بعرض ما يحتويه الكائن
النتيجة
في المثال التالي قمنا بتعريف tuple
وضعنا فيه 3 عناصر تملك 'python'
كقيمة لهم بواسطة العامل *
.
المثال الثاني
arr = ('python',) * 3 # 'python' وضعنا فيه 3 عناصر قيمتهم النص arr إسمه tuple هنا قمنا بتعريف print(arr) # arr هنا قمنا بعرض ما يحتويه الكائن
النتيجة
عند تكرار قيم في الـ tuple
بواسطة العامل *
فإنه يجب وضع فاصلة بعد القيمة الموضوعة في القوس.
في حال لم يتم وضع فاصلة بعد القيمة لن يعرف مترجم بايثون أن المراد هو تعريف tuple
.
في المثال التالي إستخدمنا العامل in
للبحث في الـ tuple
عن قيمة معينة.
المثال الثالث
arr = ('Mhamad', 'Rony', 'Rima', 'Sara') # وضعنا فيه مجموعة قيم نصية arr إسمه tuple هنا قمنا بتعريف x = 'Rima' # وضعنا فيه نص x هنا قمنا بتعريف متغير إسمه print('Is Rima in the tuple?') print(x in arr) # True و إذا تم إيجادها سيتم عرض arr في الكائن x هنا سيتم البحث عن قيمة
النتيجة
True
دوال الكلاس tuple
إسم الدالة مع تعريفها | |
---|---|
1 | count(x)
تستخدم للبحث في الـtuple الذي قام باستدعائها عن قيمة معينة.ترجع عدد صحيح يمثل كم مرة تم إيجاد عنصر عنده نفس القيمة التي مررناها لها مكان البارميتر x .شاهد المثال |
2 | index(x[, start[, end]])
تبحث في الـtuple الذي قام باستدعائها عن رقم فهرس أول عنصر يملك القيمة التي نمرره لها مكان الباراميتر 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
تحتوي على أرقام أو نصوص كمفاتيح له.