# `array` — Efektywne tablice wartości numerycznych

Ten moduł definiuje typ przedmiotu który może w zwarty sposób reprezentować tabelę podstawowych wartości: znaków, liczb całkowitych, liczb zmiennoprzecinkowych. Tablice są typami sekwencyjnymi i zachowują się bardzo podobnie do list, z wyjątkiem tego, że typy przedmiotów zachowanych w nich są ograniczone. Typ jest określony w czasie tworzenia przedmiotu przez użycie kodu typu który jest pojedynczym znakiem. Następujące kody typów są określone:

kod typu | typ języka C | typ Pythona | minimalny rozmiar w bajtach | Notatki
--- | --- | --- | --- | ---
`'b'` | typ znakowy z bitem znaku | int | 1 |
`'B'` | nieoznaczony typ znakowy | int | 1 |
`'u'` | wchar_t | znak Unicode | 2 | (1)
`'h'` | oznaczony typ krótki | int | 2 |
`'H'` | nieoznaczony typ krótki | int | 2 |
`'i'` | oznaczony typ int | int | 2 |
`'I'` | nieoznaczony typ int | int | 2 |
`'I'` | oznaczony typ długi | int | 4 |
`'L'` | nieoznaczony typ długi | int | 4 |
`'q'` | signed long long | int | 8 |
`'Q'` | unsigned long long | int | 8 |
`'f'` | typ (float) zmiennoprzecinkowy pojedynczej precyzji | typ (float) zmiennoprzecinkowy pojedynczej precyzji | 4 |
`'d'` | typ (double) zmiennoprzecinkowy podwójnej precyzji | typ (float) zmiennoprzecinkowy pojedynczej precyzji | 8 |

Uwagi:

1. It can be 16 bits or 32 bits depending on the platform.

   Zmienione w wersji 3.9: `array('u')` now uses `wchar_t` as C type instead of deprecated `Py_UNICODE`. This change doesn’t affect its behavior because `Py_UNICODE` is alias of `wchar_t` since Python 3.3.

   Zdezaprobowane w wersji 3.3, zostanie usunięte w wersji 4.0.

The actual representation of values is determined by the machine architecture (strictly speaking, by the C implementation). The actual size can be accessed through the `array.itemsize` attribute.

The module defines the following item:

`array.``typecodes`

  Ciąg ze wszystkimi dostępnymi kodami typów.

Moduł definiuje następujący typ:

class `array.``array`(typecode[, initializer])

  A new array whose items are restricted by typecode, and initialized from the optional initializer value, which must be a list, a bytes-like object, or iterable over elements of the appropriate type.

  If given a list or string, the initializer is passed to the new array’s `fromlist()`, `frombytes()`, or `fromunicode()` method (see below) to add initial items to the array. Otherwise, the iterable initializer is passed to the `extend()` method.

  Array objects support the ordinary sequence operations of indexing, slicing, concatenation, and multiplication. When using slice assignment, the assigned value must be an array object with the same type code; in all other cases, `TypeError` is raised. Array objects also implement the buffer interface, and may be used wherever bytes-like objects are supported.

  Raises an auditing event `array.__new__` with arguments `typecode`, `initializer`.

  `typecode`

    Znak kodujący typ używany do tworzenia tabeli.

  `itemsize`

    długość w bajtach (kęsach) jednego elementu tabeli w wewnętrznym przedstawieniu.

  `append`(x)

    Dodaj nowy element o wartości x na koniec tabeli.

  `buffer_info`()

    Return a tuple `(address, length)` giving the current memory address and the length in elements of the buffer used to hold array’s contents. The size of the memory buffer in bytes can be computed as `array.buffer_info()[1] * array.itemsize`. This is occasionally useful when working with low-level (and inherently unsafe) I/O interfaces that require memory addresses, such as certain `ioctl()` operations. The returned numbers are valid as long as the array exists and no length-changing operations are applied to it.

    Informacja

    Gdy używa się tablic z kodu napisanego w języku C lub C++ (jedyna droga aby efektywnie skorzystać z tej informacji), to jest to bardziej sensowne aby użyć sprzęgu przestrzeni wymiany który jest wspierany przez przedmioty tablicowe. Ten sposób postępowania jest utrzymywany dla wstecznej zgodności i powinien być pomijany w nowym kodzie. Sprzęg przestrzeni wymiany jest opisany w Buffer Protocol.

  `byteswap`()

    Zmienia kolejność bajtów wszystkich elementów tablicy. Wspierane tylko dla wartości których rozmiar to 1, 2, 4, lub 8 bajtów; dla innych typów wartości zgłaszany jest wyjątek `RuntimeError`. Jest to użyteczne gdy wczytuje się dane z pliku zapisanego na maszynie o odmiennym porządku bajtów.

  `count`(x)

    Zwróć liczbę wystąpień x w tablicy.

  `extend`(iterable)

    Przyklej elementy z przedmiotu iterowalnego na koniec tablicy. Jeśli iterowalny jest kolejną tablicą, musi mieć dokładnie ten sam typ kodu; Jeśli nie, wyjątek `TypeError` będzie zgłoszony. Jeśli iterowalny nie jest tablicą, musi być iterowalny i jego elementy muszą być właściwego typu aby mogły być doklejone do tablicy.

  `frombytes`(s)

    Dokleja elementy z ciągu znaków, interpretując ciąg jako tablicę wartości maszynowych (tak jakby były one wszytane z pliku używając sposobu postępowania `fromfile()`).

    Nowe w wersji 3.2: `fromstring()` is renamed to `frombytes()` for clarity.

  `fromfile`(f, n)

    Read n items (as machine values) from the file object f and append them to the end of the array. If less than n items are available, `EOFError` is raised, but the items that were available are still inserted into the array.

  `fromlist`(list)

    Doklej elementy z listy. To jest równoważne z `for x in list: a.append(x)` z wyjątkiem tego, że jeśli wystąpi błąd typu, tablica pozostanie niezmieniona.

  `fromunicode`(s)

    Extends this array with data from the given unicode string. The array must be a type `'u'` array; otherwise a `ValueError` is raised. Use `array.frombytes(unicodestring.encode(enc))` to append Unicode data to an array of some other type.

  `index`(x[, start[, stop]])

    Return the smallest i such that i is the index of the first occurrence of x in the array. The optional arguments start and stop can be specified to search for x within a subsection of the array. Raise `ValueError` if x is not found.

    Zmienione w wersji 3.10: Added optional start and stop parameters.

  `insert`(i, x)

    Wstaw nowy element o wartości x w tabeli przed pozycją i. Ujemne wartości są traktowane jako będące odniesieniem do pozycji od końca tabeli.

  `pop`([i])

    Usuwa element o indeksie i z tablicy i zwraca go. Opcjonalny parametr domyślnie jest `-1`, tak aby domyślnie ostatni element był usuwany i zwracany.

  `remove`(x)

    Usuń pierwsze wystąpienie x w tabeli.

  `reverse`()

    Odwróć kolejność elementów w tabeli.

  `tobytes`()

    Convert the array to an array of machine values and return the bytes representation (the same sequence of bytes that would be written to a file by the `tofile()` method.)

    Nowe w wersji 3.2: `tostring()` is renamed to `tobytes()` for clarity.

  `tofile`(f)

    Write all items (as machine values) to the file object f.

  `tolist`()

    Zamień tabelę na zwykłą listę o tych samych elementach.

  `tounicode`()

    Convert the array to a unicode string. The array must be a type `'u'` array; otherwise a `ValueError` is raised. Use `array.tobytes().decode(enc)` to obtain a unicode string from an array of some other type.

When an array object is printed or converted to a string, it is represented as `array(typecode, initializer)`. The initializer is omitted if the array is empty, otherwise it is a string if the typecode is `'u'`, otherwise it is a list of numbers. The string is guaranteed to be able to be converted back to an array with the same type and value using `eval()`, so long as the `array` class has been imported using `from array import array`. Examples:

    array('l')
    array('u', 'hello \u2641')
    array('l', [1, 2, 3, 4, 5])
    array('d', [1.0, 2.0, 3.14])

Zobacz także

Module `struct`

  Pakowanie i odpakowanie jednorodnych danych binarnych.

Module `xdrlib`

  Pakowanie i odpakowanie Danych Zewnętrznej Reprezentacji (XDR) ( - z ang. - External Data Representation) jak używano w pewnych systemach zewnętrznego wywoływania procedur.

NumPy

  The NumPy package defines another array type.