Python/array
تعرف هذه الوحدة كائنًا يمكن عن طريقه تمثيل مصفوفة من القيم الأساسية مثل الحروف والأعداد الصحيحة والأعداد ذات الفاصلة العائمة بشكل مضغوط. تعد المصفوفات من نوعًا من أنواع التسلسلات وتشبه القوائم في عملها على نحو كبير، باستثناء أن أنواع الكائنات التي يمكن تخزينها في المصفوفات محدودة. ويجري تحديد نوع الكائنات عند إنشاء المصفوفة وذلك باستخدام رمز النوع وهو عبارة عن حرف واحد فقط.
يبين الجدول التالي رموز الأنواع المتاحة:
ملاحظات: 1. يمثّل النوع 'u' حرف يونيكود الخاص المهمل في بايثون. وقد يكون حجمه 16 بت أو 32 بت وذلك حسب المنصّة التي تعمل فيها اللغة. سيحذف الرمز 'u' مع بقية الواجهة البرمجية Py_UNICODE. هذا الرمز أصبح مهملًا منذ الإصدار 3.3 من اللغة، وسيحذف في الإصدار 4.0 منها. 2. الرمزان 'q' و 'Q' متوفّران فقط إن مصرّف C المستخدم لبناء بايثون يدعم نوع long long في C أو يدعم النوع __int64 في نظام ويندوز. هذا الرمز جديد في الإصدار 3.3 من بايثون.
يُحدّد التمثيل الفعلي للقيم بواسطة معمارية جهاز التشغيل (وبعبارة أدق بواسطة C). ويمكن الوصول إلى الحجم الفعلي عن طريق الخاصية itemsize.
تعرّف الوحدة الأنواع التالية:
array.array()
تنشئ هذه الدالة البانية مصفوفة جديدة تكون عناصرها مقيدة بالنوع المحدد في معاملاتها.
array.typecodes
سلسلة نصية تتضمن جميع رموز الأنواع المتاحة.
تدعم كائنات array عمليات التسلسلات الاعتيادية من فهرسة indexing وتقطيع slicing وربط concatenation ومضاعفة multiplication. عند إجراء عملية إسناد لقطعة من المصفوفة يجب أن تكون القيمة المسندة كائن array يحمل نفس رمز النوع، وإلا فإنّ اللغة تطلق الخطأ TypeError. تستخدم كائنات array كذلك واجهة buffer، ويمكن استخدامها في أي مكان تكون فيه الكائنات الشبيهة بالبايتات مدعومة.
خصائص كائنات array
تقدم كائنات array الخصائص التالية:
array.typecode
رمز النوع الذي استخدم لإنشاء المصفوفة.
array.itemsize
طول عنصر واحد في المصفوفة بالبايتات في التمثيل الداخلي.
توابع كائنات array
تقدم كائنات array مجموعة التوابع التالية:
array.append(x)
يضيف التابع عنصرًا جديدًا يحمل القيمة المعطاة إلى نهاية المصفوفة.
array.buffer_info()
يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في buffer والمستخدمة لاستيعاب محتويات المصفوفة.
array.byteswap()
يجري هذا التابع عملية تبادل بايتات byteswap لجميع عناصر المصفوفة.
array.count(x)
يعيد التابع عدد مرات ظهور القيمة المعطاة في المصفوفة.
array.extend(iterable)
يلحق التابع عناصر كائن التكرار المعطى إلى نهاية المصفوفة.
array.frombytes(s)
يلحق التابع عناصر السلسلة النصية المعطاة وذلك بتفسير السلسلة النصية كمصفوفة من قيم الجهاز machine values (كما لو أنّها مقروءة من ملف باستخدام التابع fromfile()).
array.fromfile(f, n)
يقرأ التابع n من العناصر (كقيم جهاز machine values) من كائن الملف f ويلحقها بنهاية المصفوفة.
array.fromlist(list)
يلحق التابع عناصر القائمة المعطاة بالمصفوفة.
array.fromstring()
اسم بديل مهمل للتابع frombytes().
array.fromunicode(s)
يوسع التابع المصفوفة بإضافة البيانات من السلسلة النصية المرمّزة بترميز Unicode.
array.index(x) يعيد التابع موقع أول ظهور للقيمة المعطاة في المصفوفة.
array.insert(i, x)
يدرج التابع عنصرًا جديدًا يحمل القيمة x في المصفوفة قبل الموقع i.
array.pop([i])
يحذف التابع العنصر في الموقع i من المصفوفة ويعيده.
array.remove(x)
يحذف التابع أول ظهور للقيمة المعطاة من المصفوفة.
array.reverse()
يقلب التابع ترتيب العناصر في المصفوفة.
array.tobytes()
يحول التابع المصفوفة إلى مصفوفة من قيم الجهاز.
array.tofile(f)
يكتب التابع جميع العناصر (كقيم جهاز) في كائن الملف f.
array.tolist()
يحول التابع المصفوفة إلى قائمة عادية تتضمن نفس العناصر.
array.tostring()
الاسم البديل المهمل للتابع tobytes().
array.tounicode()
يحول التابع المصفوفة إلى سلسلة نصية بترميز Unicode.