2024-05-08 16:34:40 -03:00
|
|
|
:mod:`!array` --- Efficient arrays of numeric values
|
|
|
|
====================================================
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
.. module:: array
|
Merged revisions 62021,62029,62035-62038,62043-62044,62052-62053 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r62021 | benjamin.peterson | 2008-03-28 18:11:01 -0500 (Fri, 28 Mar 2008) | 2 lines
NIL => NULL
........
r62029 | amaury.forgeotdarc | 2008-03-28 20:42:31 -0500 (Fri, 28 Mar 2008) | 3 lines
Correctly call the base class tearDown();
otherwise running test_logging twice produce the errors we see on all buildbots
........
r62035 | raymond.hettinger | 2008-03-29 05:42:07 -0500 (Sat, 29 Mar 2008) | 1 line
Be explicit about what efficient means.
........
r62036 | georg.brandl | 2008-03-29 06:46:18 -0500 (Sat, 29 Mar 2008) | 2 lines
Fix capitalization.
........
r62037 | amaury.forgeotdarc | 2008-03-29 07:42:54 -0500 (Sat, 29 Mar 2008) | 5 lines
lib2to3 should install a logging handler only when run as a main program,
not when used as a library.
This may please the buildbots, which fail when test_lib2to3 is run before test_logging.
........
r62043 | benjamin.peterson | 2008-03-29 10:24:25 -0500 (Sat, 29 Mar 2008) | 3 lines
#2503 make singletons compared with "is" not == or !=
Thanks to Wummel for the patch
........
r62044 | gerhard.haering | 2008-03-29 14:11:52 -0500 (Sat, 29 Mar 2008) | 2 lines
Documented the lastrowid attribute.
........
r62052 | benjamin.peterson | 2008-03-30 14:35:10 -0500 (Sun, 30 Mar 2008) | 2 lines
Updated README regarding doc formats
........
r62053 | georg.brandl | 2008-03-30 14:41:39 -0500 (Sun, 30 Mar 2008) | 2 lines
The other download formats will be available for 2.6 too.
........
2008-03-30 22:51:45 -03:00
|
|
|
:synopsis: Space efficient arrays of uniformly typed numeric values.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
.. index:: single: arrays
|
|
|
|
|
2016-06-11 16:02:54 -03:00
|
|
|
--------------
|
|
|
|
|
Merged revisions 62021,62029,62035-62038,62043-62044,62052-62053 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r62021 | benjamin.peterson | 2008-03-28 18:11:01 -0500 (Fri, 28 Mar 2008) | 2 lines
NIL => NULL
........
r62029 | amaury.forgeotdarc | 2008-03-28 20:42:31 -0500 (Fri, 28 Mar 2008) | 3 lines
Correctly call the base class tearDown();
otherwise running test_logging twice produce the errors we see on all buildbots
........
r62035 | raymond.hettinger | 2008-03-29 05:42:07 -0500 (Sat, 29 Mar 2008) | 1 line
Be explicit about what efficient means.
........
r62036 | georg.brandl | 2008-03-29 06:46:18 -0500 (Sat, 29 Mar 2008) | 2 lines
Fix capitalization.
........
r62037 | amaury.forgeotdarc | 2008-03-29 07:42:54 -0500 (Sat, 29 Mar 2008) | 5 lines
lib2to3 should install a logging handler only when run as a main program,
not when used as a library.
This may please the buildbots, which fail when test_lib2to3 is run before test_logging.
........
r62043 | benjamin.peterson | 2008-03-29 10:24:25 -0500 (Sat, 29 Mar 2008) | 3 lines
#2503 make singletons compared with "is" not == or !=
Thanks to Wummel for the patch
........
r62044 | gerhard.haering | 2008-03-29 14:11:52 -0500 (Sat, 29 Mar 2008) | 2 lines
Documented the lastrowid attribute.
........
r62052 | benjamin.peterson | 2008-03-30 14:35:10 -0500 (Sun, 30 Mar 2008) | 2 lines
Updated README regarding doc formats
........
r62053 | georg.brandl | 2008-03-30 14:41:39 -0500 (Sun, 30 Mar 2008) | 2 lines
The other download formats will be available for 2.6 too.
........
2008-03-30 22:51:45 -03:00
|
|
|
This module defines an object type which can compactly represent an array of
|
2024-07-19 05:06:02 -03:00
|
|
|
basic values: characters, integers, floating-point numbers. Arrays are sequence
|
2007-08-15 11:28:22 -03:00
|
|
|
types and behave very much like lists, except that the type of objects stored in
|
|
|
|
them is constrained. The type is specified at object creation time by using a
|
|
|
|
:dfn:`type code`, which is a single character. The following type codes are
|
|
|
|
defined:
|
|
|
|
|
2011-09-20 21:55:51 -03:00
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| Type code | C Type | Python Type | Minimum size in bytes | Notes |
|
|
|
|
+===========+====================+===================+=======================+=======+
|
|
|
|
| ``'b'`` | signed char | int | 1 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'B'`` | unsigned char | int | 1 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
2020-05-11 03:37:25 -03:00
|
|
|
| ``'u'`` | wchar_t | Unicode character | 2 | \(1) |
|
2011-09-20 21:55:51 -03:00
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
2023-06-04 13:45:00 -03:00
|
|
|
| ``'w'`` | Py_UCS4 | Unicode character | 4 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
2011-09-20 21:55:51 -03:00
|
|
|
| ``'h'`` | signed short | int | 2 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'H'`` | unsigned short | int | 2 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'i'`` | signed int | int | 2 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'I'`` | unsigned int | int | 2 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'l'`` | signed long | int | 4 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'L'`` | unsigned long | int | 4 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
2019-08-22 12:28:28 -03:00
|
|
|
| ``'q'`` | signed long long | int | 8 | |
|
2011-09-20 21:55:51 -03:00
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
2019-08-22 12:28:28 -03:00
|
|
|
| ``'Q'`` | unsigned long long | int | 8 | |
|
2011-09-20 21:55:51 -03:00
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'f'`` | float | float | 4 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
| ``'d'`` | double | float | 8 | |
|
|
|
|
+-----------+--------------------+-------------------+-----------------------+-------+
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
(1)
|
2020-05-11 03:37:25 -03:00
|
|
|
It can be 16 bits or 32 bits depending on the platform.
|
2012-08-05 19:46:05 -03:00
|
|
|
|
2020-05-11 03:37:25 -03:00
|
|
|
.. versionchanged:: 3.9
|
2023-07-22 15:35:22 -03:00
|
|
|
``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated
|
2022-05-31 18:52:03 -03:00
|
|
|
``Py_UNICODE``. This change doesn't affect its behavior because
|
2023-07-22 15:35:22 -03:00
|
|
|
``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3.
|
2012-08-24 15:14:12 -03:00
|
|
|
|
2023-06-11 06:17:35 -03:00
|
|
|
.. deprecated-removed:: 3.3 3.16
|
2023-06-04 13:45:00 -03:00
|
|
|
Please migrate to ``'w'`` typecode.
|
2012-08-24 15:14:12 -03:00
|
|
|
|
2020-05-11 03:37:25 -03:00
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
The actual representation of values is determined by the machine architecture
|
|
|
|
(strictly speaking, by the C implementation). The actual size can be accessed
|
2023-02-02 20:03:27 -04:00
|
|
|
through the :attr:`array.itemsize` attribute.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2022-10-28 07:26:01 -03:00
|
|
|
The module defines the following item:
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: typecodes
|
|
|
|
|
|
|
|
A string with all available type codes.
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
The module defines the following type:
|
|
|
|
|
|
|
|
|
Merged revisions 73930-73932,73937-73939,73945,73951,73954,73962-73963,73970 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r73930 | amaury.forgeotdarc | 2009-07-10 12:47:42 -0400 (Fri, 10 Jul 2009) | 2 lines
#6447: typo in subprocess docstring
........
r73931 | ezio.melotti | 2009-07-10 16:25:56 -0400 (Fri, 10 Jul 2009) | 1 line
more cleanups and if zlib -> skipUnless(zlib)
........
r73932 | kristjan.jonsson | 2009-07-11 04:44:43 -0400 (Sat, 11 Jul 2009) | 3 lines
http://bugs.python.org/issue6460
Need to be careful with thread switching when testing the xmlrpc server. The server thread may not have updated stats when the client thread tests them.
........
r73937 | georg.brandl | 2009-07-11 06:12:36 -0400 (Sat, 11 Jul 2009) | 1 line
Fix style.
........
r73938 | georg.brandl | 2009-07-11 06:14:54 -0400 (Sat, 11 Jul 2009) | 1 line
#6446: fix import_spam() function to use correct error and reference handling.
........
r73939 | georg.brandl | 2009-07-11 06:18:10 -0400 (Sat, 11 Jul 2009) | 1 line
#6448: clarify docs for find_module().
........
r73945 | georg.brandl | 2009-07-11 06:51:31 -0400 (Sat, 11 Jul 2009) | 1 line
#6456: clarify the meaning of constants used as arguments to nl_langinfo().
........
r73951 | georg.brandl | 2009-07-11 10:23:38 -0400 (Sat, 11 Jul 2009) | 2 lines
array.array is actually a class.
........
r73954 | tarek.ziade | 2009-07-11 13:21:00 -0400 (Sat, 11 Jul 2009) | 1 line
reverted changes for #6459 (doesn't apply on 2.x)
........
r73962 | benjamin.peterson | 2009-07-11 18:15:13 -0400 (Sat, 11 Jul 2009) | 1 line
put downloaded test support files in Lib/test/data instead of the cwd
........
r73963 | benjamin.peterson | 2009-07-11 18:25:24 -0400 (Sat, 11 Jul 2009) | 1 line
ignore things in Lib/test/data/
........
r73970 | hirokazu.yamamoto | 2009-07-11 22:04:47 -0400 (Sat, 11 Jul 2009) | 1 line
Fixed distutils test.
........
2009-07-17 07:42:05 -03:00
|
|
|
.. class:: array(typecode[, initializer])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
Merged revisions 73930-73932,73937-73939,73945,73951,73954,73962-73963,73970 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r73930 | amaury.forgeotdarc | 2009-07-10 12:47:42 -0400 (Fri, 10 Jul 2009) | 2 lines
#6447: typo in subprocess docstring
........
r73931 | ezio.melotti | 2009-07-10 16:25:56 -0400 (Fri, 10 Jul 2009) | 1 line
more cleanups and if zlib -> skipUnless(zlib)
........
r73932 | kristjan.jonsson | 2009-07-11 04:44:43 -0400 (Sat, 11 Jul 2009) | 3 lines
http://bugs.python.org/issue6460
Need to be careful with thread switching when testing the xmlrpc server. The server thread may not have updated stats when the client thread tests them.
........
r73937 | georg.brandl | 2009-07-11 06:12:36 -0400 (Sat, 11 Jul 2009) | 1 line
Fix style.
........
r73938 | georg.brandl | 2009-07-11 06:14:54 -0400 (Sat, 11 Jul 2009) | 1 line
#6446: fix import_spam() function to use correct error and reference handling.
........
r73939 | georg.brandl | 2009-07-11 06:18:10 -0400 (Sat, 11 Jul 2009) | 1 line
#6448: clarify docs for find_module().
........
r73945 | georg.brandl | 2009-07-11 06:51:31 -0400 (Sat, 11 Jul 2009) | 1 line
#6456: clarify the meaning of constants used as arguments to nl_langinfo().
........
r73951 | georg.brandl | 2009-07-11 10:23:38 -0400 (Sat, 11 Jul 2009) | 2 lines
array.array is actually a class.
........
r73954 | tarek.ziade | 2009-07-11 13:21:00 -0400 (Sat, 11 Jul 2009) | 1 line
reverted changes for #6459 (doesn't apply on 2.x)
........
r73962 | benjamin.peterson | 2009-07-11 18:15:13 -0400 (Sat, 11 Jul 2009) | 1 line
put downloaded test support files in Lib/test/data instead of the cwd
........
r73963 | benjamin.peterson | 2009-07-11 18:25:24 -0400 (Sat, 11 Jul 2009) | 1 line
ignore things in Lib/test/data/
........
r73970 | hirokazu.yamamoto | 2009-07-11 22:04:47 -0400 (Sat, 11 Jul 2009) | 1 line
Fixed distutils test.
........
2009-07-17 07:42:05 -03:00
|
|
|
A new array whose items are restricted by *typecode*, and initialized
|
2024-01-22 04:42:50 -04:00
|
|
|
from the optional *initializer* value, which must be a :class:`bytes`
|
|
|
|
or :class:`bytearray` object, a Unicode string, or iterable over elements
|
|
|
|
of the appropriate type.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
If given a :class:`bytes` or :class:`bytearray` object, the initializer
|
|
|
|
is passed to the new array's :meth:`frombytes` method;
|
|
|
|
if given a Unicode string, the initializer is passed to the
|
|
|
|
:meth:`fromunicode` method;
|
|
|
|
otherwise, the initializer's iterator is passed to the :meth:`extend` method
|
|
|
|
to add initial items to the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
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,
|
|
|
|
:exc:`TypeError` is raised. Array objects also implement the buffer interface,
|
|
|
|
and may be used wherever :term:`bytes-like objects <bytes-like object>` are supported.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. audit-event:: array.__new__ typecode,initializer array.array
|
2007-11-06 17:34:58 -04:00
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. attribute:: typecode
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
The typecode character used to create the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. attribute:: itemsize
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
The length in bytes of one array item in the internal representation.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: append(x)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Append a new item with value *x* to the end of the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: buffer_info()
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
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
|
|
|
|
:c:func:`!ioctl` operations. The returned numbers are valid as long as the array
|
|
|
|
exists and no length-changing operations are applied to it.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. note::
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
When using array objects from code written in C or C++ (the only way to
|
|
|
|
effectively make use of this information), it makes more sense to use the buffer
|
|
|
|
interface supported by array objects. This method is maintained for backward
|
|
|
|
compatibility and should be avoided in new code. The buffer interface is
|
|
|
|
documented in :ref:`bufferobjects`.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: byteswap()
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
"Byteswap" all items of the array. This is only supported for values which are
|
|
|
|
1, 2, 4, or 8 bytes in size; for other types of values, :exc:`RuntimeError` is
|
|
|
|
raised. It is useful when reading data from a file written on a machine with a
|
|
|
|
different byte order.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: count(x)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Return the number of occurrences of *x* in the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: extend(iterable)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Append items from *iterable* to the end of the array. If *iterable* is another
|
|
|
|
array, it must have *exactly* the same type code; if not, :exc:`TypeError` will
|
|
|
|
be raised. If *iterable* is not an array, it must be iterable and its elements
|
|
|
|
must be the right type to be appended to the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
.. method:: frombytes(buffer)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
Appends items from the :term:`bytes-like object`, interpreting
|
|
|
|
its content as an array of machine values (as if it had been read
|
|
|
|
from a file using the :meth:`fromfile` method).
|
2010-09-01 17:29:34 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. versionadded:: 3.2
|
|
|
|
:meth:`!fromstring` is renamed to :meth:`frombytes` for clarity.
|
2010-09-01 17:29:34 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: fromfile(f, n)
|
2010-09-01 17:29:34 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Read *n* items (as machine values) from the :term:`file object` *f* and append
|
|
|
|
them to the end of the array. If less than *n* items are available,
|
|
|
|
:exc:`EOFError` is raised, but the items that were available are still
|
|
|
|
inserted into the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: fromlist(list)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Append items from the list. This is equivalent to ``for x in list:
|
|
|
|
a.append(x)`` except that if there is a type error, the array is unchanged.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: fromunicode(s)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
Extends this array with data from the given Unicode string.
|
2023-06-04 13:45:00 -03:00
|
|
|
The array must have type code ``'u'`` or ``'w'``; otherwise a :exc:`ValueError` is raised.
|
|
|
|
Use ``array.frombytes(unicodestring.encode(enc))`` to append Unicode data to an
|
2023-02-02 20:03:27 -04:00
|
|
|
array of some other type.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: index(x[, start[, stop]])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
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
|
|
|
|
:exc:`ValueError` if *x* is not found.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. versionchanged:: 3.10
|
|
|
|
Added optional *start* and *stop* parameters.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: insert(i, x)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Insert a new item with value *x* in the array before position *i*. Negative
|
|
|
|
values are treated as being relative to the end of the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: pop([i])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Removes the item with the index *i* from the array and returns it. The optional
|
|
|
|
argument defaults to ``-1``, so that by default the last item is removed and
|
|
|
|
returned.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: remove(x)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Remove the first occurrence of *x* from the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2024-02-10 11:59:46 -04:00
|
|
|
.. method:: clear()
|
|
|
|
|
|
|
|
Remove all elements from the array.
|
|
|
|
|
|
|
|
.. versionadded:: 3.13
|
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: reverse()
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Reverse the order of the items in the array.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: tobytes()
|
2010-09-01 17:29:34 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
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 :meth:`tofile` method.)
|
2010-09-01 17:29:34 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. versionadded:: 3.2
|
|
|
|
:meth:`!tostring` is renamed to :meth:`tobytes` for clarity.
|
2010-09-01 17:29:34 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: tofile(f)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Write all items (as machine values) to the :term:`file object` *f*.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: tolist()
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
Convert the array to an ordinary list with the same items.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2023-02-02 20:03:27 -04:00
|
|
|
.. method:: tounicode()
|
2007-08-15 11:28:22 -03:00
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
Convert the array to a Unicode string. The array must have a type ``'u'`` or ``'w'``;
|
2023-02-02 20:03:27 -04:00
|
|
|
otherwise a :exc:`ValueError` is raised. Use ``array.tobytes().decode(enc)`` to
|
2024-01-22 04:42:50 -04:00
|
|
|
obtain a Unicode string from an array of some other type.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
2024-01-22 04:42:50 -04:00
|
|
|
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'`` or ``'w'``, otherwise it is
|
|
|
|
a list of numbers.
|
|
|
|
The string representation is guaranteed to be able to be converted back to an
|
2007-08-15 11:28:22 -03:00
|
|
|
array with the same type and value using :func:`eval`, so long as the
|
2016-12-02 17:13:53 -04:00
|
|
|
:class:`~array.array` class has been imported using ``from array import array``.
|
2024-01-22 04:42:50 -04:00
|
|
|
Variables ``inf`` and ``nan`` must also be defined if it contains
|
2024-07-19 05:06:02 -03:00
|
|
|
corresponding floating-point values.
|
2007-08-15 11:28:22 -03:00
|
|
|
Examples::
|
|
|
|
|
|
|
|
array('l')
|
2023-06-04 13:45:00 -03:00
|
|
|
array('w', 'hello \u2641')
|
2007-08-15 11:28:22 -03:00
|
|
|
array('l', [1, 2, 3, 4, 5])
|
2024-01-22 04:42:50 -04:00
|
|
|
array('d', [1.0, 2.0, 3.14, -inf, nan])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
Module :mod:`struct`
|
|
|
|
Packing and unpacking of heterogeneous binary data.
|
|
|
|
|
2020-10-01 20:22:14 -03:00
|
|
|
`NumPy <https://numpy.org/>`_
|
|
|
|
The NumPy package defines another array type.
|