"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     | Notatki |
|             |                      |                     | bajtach                 |         |
|=============|======================|=====================|=========================|=========|
| "'b'"       | typ znakowy z bitem  | int                 | 1                       |         |
|             | znaku                |                     |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'B'"       | nieoznaczony typ     | int                 | 1                       |         |
|             | znakowy              |                     |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'u'"       | wchar_t              | znak Unicode        | 2                       | (1)     |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'h'"       | oznaczony typ krótki | int                 | 2                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'H'"       | nieoznaczony typ     | int                 | 2                       |         |
|             | krótki               |                     |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'i'"       | oznaczony typ int    | int                 | 2                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'I'"       | nieoznaczony typ int | int                 | 2                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'I'"       | oznaczony typ długi  | int                 | 4                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'L'"       | nieoznaczony typ     | int                 | 4                       |         |
|             | długi                |                     |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'q'"       | signed long long     | int                 | 8                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'Q'"       | unsigned long long   | int                 | 8                       |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'f'"       | typ (float)          | typ (float)         | 4                       |         |
|             | zmiennoprzecinkowy   | zmiennoprzecinkowy  |                         |         |
|             | pojedynczej precyzji | pojedynczej         |                         |         |
|             |                      | precyzji            |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+
| "'d'"       | typ (double)         | typ (float)         | 8                       |         |
|             | zmiennoprzecinkowy   | zmiennoprzecinkowy  |                         |         |
|             | podwójnej precyzji   | pojedynczej         |                         |         |
|             |                      | precyzji            |                         |         |
+-------------+----------------------+---------------------+-------------------------+---------+

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.

   Deprecated since version 3.3, will be removed in version 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.
