الصفوف في لغة بايثون Python

الصفوف (tuple) هي سلسلة من الأغراض الثابتة فالصفوف هي متواليات تماما مثل القوائم والصفوف حيث لا توجد اختلافات بين الصفوف والقوائم على عكس القوائم فالصفوف تستخدم الأقواس، في حين تستخدم القوائم قوسين معقوفين.
إنشاء الصفوف (tuple) بسيط مثل وضع قيم مفصولة بفواصل مختلفة. اختياريا يمكنك وضع هذه القيم مفصولة بفواصل بين قوسين أيضاً.
مثال

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

يكتب الصف الفارغ بالشكل

tup1 =();

لكتابة صف (tuple) يحتوي على قيمة واحدة يجب وضع فاصلة، حتى لو كان هناك قيمة واحدة فقط.

tup1 =(50,);

إسناد القيم في الصفوف

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

#!/usr/bin/python

tup1 =('physics','chemistry',1997,2000);
tup2 =(1,2,3,4,5,6,7);

print"tup1[0]: ", tup1[0]
print"tup2[1:5]: ", tup2[1:5]

فتظهر النتيجة التالية

tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]

تحديث الصفوف

الصفوف غير قابلة للتغيير مما يعني أنه لا يمكن تحديث أو تغيير قيم العناصر في الصف (tuple). من الممكن اتخاذ أجزاء من المجموعات الموجودة لإنشاء الصفوف الجديدة.
مثال

#!/usr/bin/python

tup1 =(12,34.56);
tup2 =('abc','xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

فتظهر النتيجة التالية

(12, 34.56, 'abc', 'xyz')

حذف عناصر الصف

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

#!/usr/bin/python

tup=('physics','chemistry',1997,2000);

printtup;
deltup;
print"After deleting tup : "
printtup;

فتظهر النتيجة التالية

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined

العمليات الأساسية على الصفوف

تتجاوب الصفوف مع عمليات الجمع والضرب بشكل مشابه للسلاسل باستثناء أن النتيجة صف وليس سلسلة. كما ان الصفوف تتجاوب مع كافة العمليات التي تتجاوب معها السلسلة.

التعبير النتيجة الوصف
len((1, 2, 3)) 3 الطول
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) السلسلة
(‘Hi!’,) * 4 (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) الإعادة
3 in (1, 2, 3) True العضوية
for x in (1, 2, 3): print x, 1 2 3 التكرار

التأشير وأخذ الشرائح والمصفوفات

يتم ذلك بشكل مشابه للسلاسل كون الصفوف تمثل سلاسلاً.
لنفترض الإدخال التالي:

L =('spam','Spam','SPAM!')
التعبير النتيجة الوصف
L[2] ‘SPAM!’ تبدأ الإزاحة عند الصفر.
L[-2] ‘Spam’ سلباً: يبدا العد من اليمين
L[1:] [‘Spam’, ‘SPAM!’] يتم اخذ الشرائح على شكل قطاعات

المكونات بدون مرفقات

أية مجموعة مكونة من عدة أغراض يفصل بينها فاصلة ومكتوبة بدون رموز تعريفية مثل الأقواس المستخدمة للقوائم وعلامات الحصر المستخدمة للصفوف… إلخ, فإنها افتراضياُ تعتبر صفوف كما هو موضح في المثال التالي:

#!/usr/bin/python

print'abc',-4.24e93,18+6.6j,'xyz';
x, y =1,2;
print"Value of x , y : ",x,y;

حيث تظهر النتيجة التالية

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

التوابع المبنية في الصفوف

الرقم التسلسلي التابع والوصف
1 cmp(tuple1, tuple2)يستخدم لمقارنة عناصر صفين.
2 len(tuple) يعطي الطول الكلي للصف.
3 max(tuple) يعيد البند أو المكون من الصف مع القيمة العظمى.
4 min(tuple) يعيد البند أو المكون من الصف مع القيمة الدنيا.
5 يحول القائمة إلى صف.tuple(seq)