Python/array
تعرف هذه الوحدة كائنًا يمكن عن طريقه تمثيل مصفوفة من القيم الأساسية مثل الحروف والأعداد الصحيحة والأعداد ذات الفاصلة العائمة بشكل مضغوط. تعد المصفوفات نوعًا من أنواع التسلسلات وتشبه القوائم في عملها على نحو كبير، باستثناء أن أنواع الكائنات التي يمكن تخزينها في المصفوفات محدودة. ويجري تحديد نوع الكائنات عند إنشاء المصفوفة وذلك باستخدام رمز النوع وهو عبارة عن حرف واحد فقط.
يبين الجدول التالي رموز الأنواع المتاحة:
رمز النوع | النوع في لغة C | النوع في بايثون | الحجم الأدنى بالبايتات | ملاحظات |
---|---|---|---|---|
'b'
|
حرف ذو إشارة | int | 1 | |
'B'
|
حرف بدون إشارة | int | 1 | |
'u'
|
Py_UNICODE | محرف يونيكود | 2 | (1) |
'h'
|
عدد من نوع short ذو إشارة | int | 2 | |
'H'
|
عدد من نوع short بدون إشارة | int | 2 | |
'i'
|
عدد من نوع int ذو إشارة | int | 2 | |
'I'
|
عدد من نوع int بدون إشارة | int | 2 | |
'l'
|
عدد من نوع long ذو إشارة | int | 4 | |
'L'
|
عدد من نوع short بدون إشارة | int | 4 | |
'q'
|
عدد من نوع long long ذو إشارة | int | 8 | (2) |
'Q'
|
عدد من نوع long long بدون إشارة | int | 8 | (2) |
'f'
|
عدد ذو فاصلة عائمة | float | 4 | |
'd'
|
عدد من نوع double | float | 8 |
ملاحظات:
- يمثّل النوع
'u'
حرف يونيكود الخاص المهمل في بايثون. وقد يكون حجمه 16 بت أو 32 بت وذلك حسب المنصّة التي تعمل فيها اللغة. سيحذف الرمز'u'
مع بقية الواجهة البرمجيةPy_UNICODE
. هذا الرمز أصبح مهملًا منذ الإصدار 3.3 من اللغة، وسيحذف في الإصدار 4.0 منها. - الرمزان
'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.