array — מערכים של נתונים מספריים

מודול זה מגדיר את הטיפוס array.array: רצף חסכוני-בשטח של ערכים מטיפוס מספרי קבוע יחיד, ניתן לאינדוקס כמו רשימה אך מגובה על ידי בלוק זיכרון רציף הנגיש דרך פרוטוקול החוצץ (buffer).

קודי טיפוס נתמכים

ארגומנט ה-typecode בן התו היחיד בוחר את טיפוס האיבר:

קוד טיפוס

טיפוס C

בתים

טיפוס Python

'b'

signed char

1

int

'B'

unsigned char

1

int

'h'

signed short

2

int

'H'

unsigned short

2

int

'i'

signed int

2 או 4

int

'I'

unsigned int

2 או 4

int

'l'

signed long

4

int

'L'

unsigned long

4

int

'q'

signed long long

8

int

'Q'

unsigned long long

8

int

'f'

float

4

float

'd'

double

8

float

הקודים 'f' ו-'d' דורשים קושחה שנבנתה עם תמיכה בנקודה צפה (ברירת המחדל ברוב הלוחות). הרוחב המדויק של 'i' ו-'I' עוקב אחר ה-ABI של שפת C במארח — בדרך כלל 4 בתים בפורטים של Cortex-M.

מחלקות

class array.array(typecode: str, iterable: Iterable = ())

צור מערך עם איברים מהטיפוס הנתון. התוכן ההתחלתי של המערך ניתן על ידי iterable. אם הוא לא סופק, נוצר מערך ריק.

בנוסף למתודות שלהלן, אובייקטי מערך מיישמים גם את פרוטוקול החוצץ (buffer). פירוש הדבר שניתן לגשת לתוכן המערך כולו כבתים גולמיים דרך memoryview או ממשקים אחרים המשתמשים בפרוטוקול זה.

append(val: Any) None

הוסף איבר חדש val לסוף המערך, תוך הגדלתו.

extend(iterable: Iterable) None

הוסף איברים חדשים המוכלים ב-iterable לסוף המערך, תוך הגדלתו.

__getitem__(index: int | slice) Any

קריאה מאונדקסת של המערך, הנקראת כ-a[index] (כאשר a הוא array). מחזירה ערך אם index הוא int ו-array אם index הוא פרוסה (slice). אינדקסים שליליים נספרים מהסוף ו-IndexError נזרק אם האינדקס מחוץ לטווח.

הערה: __getitem__ לא ניתן לקריאה ישירה (a.__getitem__(index) נכשל) ואינו קיים ב-__dict__, אולם a[index] אכן עובד.

__setitem__(index: int | slice, value: Any) None

כתיבה מאונדקסת אל המערך, הנקראת כ-a[index] = value (כאשר a הוא array). value הוא ערך יחיד אם index הוא int ו-array אם index הוא פרוסה (slice). אינדקסים שליליים נספרים מהסוף ו-IndexError נזרק אם האינדקס מחוץ לטווח.

הערה: __setitem__ לא ניתן לקריאה ישירה (a.__setitem__(index, value) נכשל) ואינו קיים ב-__dict__, אולם a[index] = value אכן עובד.

__len__() int

מחזיר את מספר הפריטים במערך, הנקרא כ-len(a) (כאשר a הוא array).

הערה: __len__ לא ניתן לקריאה ישירה (a.__len__() נכשל) והמתודה אינה קיימת ב-__dict__, אולם len(a) אכן עובד.

__add__(other: array) array

החזר array חדש שהוא השרשור של המערך עם other, הנקרא כ-a + other (כאשר a ו-other הם שניהם arrays).

הערה: __add__ לא ניתן לקריאה ישירה (a.__add__(other) נכשל) ואינו קיים ב-__dict__, אולם a + other אכן עובד.

__iadd__(other: array) array

משרשר את המערך עם other במקום (in-place), הנקרא כ-a += other (כאשר a ו-other הם שניהם arrays). שקול ל-extend(other).

הערה: __iadd__ לא ניתן לקריאה ישירה (a.__iadd__(other) נכשל) ואינו קיים ב-__dict__, אולם a += other אכן עובד.

__repr__() str

מחזיר את ייצוג המחרוזת של המערך, הנקרא כ-str(a) או repr(a) (כאשר a הוא array). מחזיר את המחרוזת "array(<type>, [<elements>])", כאשר <type> הוא אות קוד הטיפוס של המערך ו-<elements> היא רשימה מופרדת בפסיקים של איברי המערך.

הערה: __repr__ לא ניתן לקריאה ישירה (a.__repr__() נכשל) ואינו קיים ב-__dict__, אולם str(a) ו-repr(a) שניהם עובדים.