الصفوف في لغة بايثون 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





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





























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

ليست هناك تعليقات:

إرسال تعليق