"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.

   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
   "bytes" or "bytearray" object, a Unicode string, or iterable over
   elements of the appropriate type.

   If given a "bytes" or "bytearray" object, the initializer is passed
   to the new array's "frombytes()" method; if given a Unicode string,
   the initializer is passed to the "fromunicode()" method; otherwise,
   the initializer's iterator is passed to the "extend()" method to
   add initial items to the array.

   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(buffer)

      Appends items from the *bytes-like object*, interpreting its
      content as an array of machine values (as if it had been read
      from a file using the "fromfile()" method).

      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 have type code "'u'"; 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 have a
      type "'u'"; otherwise a "ValueError" is raised. Use
      "array.tobytes().decode(enc)" to obtain a Unicode string from an
      array of some other type.

The string representation of array objects has the form
"array(typecode, initializer)". The *initializer* is omitted if the
array is empty, otherwise it is a Unicode string if the *typecode* is
"'u'", otherwise it is a list of numbers. The string representation 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". Variables "inf" and "nan"
must also be defined if it contains corresponding floating point
values. Examples:

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

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.
