# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001 Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # 99 , 2026 # python-doc bot, 2026 # Freesand Leo , 2026 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.15\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-11 16:26+0000\n" "PO-Revision-Date: 2025-09-16 00:00+0000\n" "Last-Translator: Freesand Leo , 2026\n" "Language-Team: Chinese (China) (https://app.transifex.com/python-doc/teams/5390/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../library/array.rst:2 msgid ":mod:`!array` --- Efficient arrays of numeric values" msgstr ":mod:`!array` --- 高效的数值数组" #: ../../library/array.rst:11 msgid "" "This module defines an object type which can compactly represent an array of" " basic values: characters, integers, floating-point numbers, complex " "numbers. Arrays are mutable :term:`sequence` 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:" msgstr "" #: ../../library/array.rst:19 msgid "Type code" msgstr "类型码" #: ../../library/array.rst:19 msgid "C Type" msgstr "C 类型" #: ../../library/array.rst:19 msgid "Python Type" msgstr "Python 类型" #: ../../library/array.rst:19 msgid "Minimum size in bytes" msgstr "最小字节数" #: ../../library/array.rst:19 msgid "Notes" msgstr "备注" #: ../../library/array.rst:21 msgid "``'b'``" msgstr "``'b'``" #: ../../library/array.rst:21 msgid "signed char" msgstr "signed char" #: ../../library/array.rst:21 ../../library/array.rst:23 #: ../../library/array.rst:29 ../../library/array.rst:31 #: ../../library/array.rst:33 ../../library/array.rst:35 #: ../../library/array.rst:37 ../../library/array.rst:39 #: ../../library/array.rst:41 ../../library/array.rst:43 msgid "int" msgstr "int" #: ../../library/array.rst:21 ../../library/array.rst:23 msgid "1" msgstr "1" #: ../../library/array.rst:23 msgid "``'B'``" msgstr "``'B'``" #: ../../library/array.rst:23 msgid "unsigned char" msgstr "unsigned char" #: ../../library/array.rst:25 msgid "``'u'``" msgstr "``'u'``" #: ../../library/array.rst:25 msgid "wchar_t" msgstr "wchar_t" #: ../../library/array.rst:25 ../../library/array.rst:27 msgid "Unicode character" msgstr "Unicode 字符" #: ../../library/array.rst:25 ../../library/array.rst:29 #: ../../library/array.rst:31 ../../library/array.rst:33 #: ../../library/array.rst:35 ../../library/array.rst:45 msgid "2" msgstr "2" #: ../../library/array.rst:25 msgid "\\(1)" msgstr "\\(1)" #: ../../library/array.rst:27 msgid "``'w'``" msgstr "``'w'``" #: ../../library/array.rst:27 msgid "Py_UCS4" msgstr "Py_UCS4" #: ../../library/array.rst:27 ../../library/array.rst:37 #: ../../library/array.rst:39 ../../library/array.rst:47 msgid "4" msgstr "4" #: ../../library/array.rst:27 msgid "\\(2)" msgstr "\\(2)" #: ../../library/array.rst:29 msgid "``'h'``" msgstr "``'h'``" #: ../../library/array.rst:29 msgid "signed short" msgstr "signed short" #: ../../library/array.rst:31 msgid "``'H'``" msgstr "``'H'``" #: ../../library/array.rst:31 msgid "unsigned short" msgstr "unsigned short" #: ../../library/array.rst:33 msgid "``'i'``" msgstr "``'i'``" #: ../../library/array.rst:33 msgid "signed int" msgstr "signed int" #: ../../library/array.rst:35 msgid "``'I'``" msgstr "``'I'``" #: ../../library/array.rst:35 msgid "unsigned int" msgstr "unsigned int" #: ../../library/array.rst:37 msgid "``'l'``" msgstr "``'l'``" #: ../../library/array.rst:37 msgid "signed long" msgstr "signed long" #: ../../library/array.rst:39 msgid "``'L'``" msgstr "``'L'``" #: ../../library/array.rst:39 msgid "unsigned long" msgstr "unsigned long" #: ../../library/array.rst:41 msgid "``'q'``" msgstr "``'q'``" #: ../../library/array.rst:41 msgid "signed long long" msgstr "signed long long" #: ../../library/array.rst:41 ../../library/array.rst:43 #: ../../library/array.rst:49 ../../library/array.rst:51 msgid "8" msgstr "8" #: ../../library/array.rst:43 msgid "``'Q'``" msgstr "``'Q'``" #: ../../library/array.rst:43 msgid "unsigned long long" msgstr "unsigned long long" #: ../../library/array.rst:45 msgid "``'e'``" msgstr "``'e'``" #: ../../library/array.rst:45 msgid "_Float16" msgstr "" #: ../../library/array.rst:45 ../../library/array.rst:47 #: ../../library/array.rst:49 msgid "float" msgstr "float" #: ../../library/array.rst:45 msgid "\\(3)" msgstr "\\(3)" #: ../../library/array.rst:47 msgid "``'f'``" msgstr "``'f'``" #: ../../library/array.rst:49 msgid "``'d'``" msgstr "``'d'``" #: ../../library/array.rst:49 msgid "double" msgstr "double" #: ../../library/array.rst:51 msgid "``'Zf'``" msgstr "``'Zf'``" #: ../../library/array.rst:51 msgid "float complex" msgstr "" #: ../../library/array.rst:51 ../../library/array.rst:53 msgid "complex" msgstr "复数" #: ../../library/array.rst:51 ../../library/array.rst:53 msgid "\\(4)" msgstr "\\(4)" #: ../../library/array.rst:53 msgid "``'Zd'``" msgstr "" #: ../../library/array.rst:53 msgid "double complex" msgstr "" #: ../../library/array.rst:53 msgid "16" msgstr "16" #: ../../library/array.rst:57 msgid "Notes:" msgstr "备注:" #: ../../library/array.rst:60 msgid "It can be 16 bits or 32 bits depending on the platform." msgstr "可能为 16 位或 32 位,取决于具体的平台。" #: ../../library/array.rst:62 msgid "" "``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated " "``Py_UNICODE``. This change doesn't affect its behavior because " "``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3." msgstr "" "``array('u')`` 现在使用 :c:type:`wchar_t` 作为 C 类型而不是已不建议使用的 " "``Py_UNICODE``。这个改变不会影响其行为,因为 ``Py_UNICODE`` 自 Python 3.3 起就是 " ":c:type:`wchar_t` 的别名。" #: ../../library/array.rst:67 msgid "Please migrate to ``'w'`` typecode." msgstr "请迁移到 ``'w'`` 类型码。" #: ../../library/array.rst:74 msgid "" "The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " "revision of the `IEEE 754 standard `_. This type is not " "widely supported by C compilers. It's available as :c:expr:`_Float16` type," " if the compiler supports the Annex H of the C23 standard." msgstr "" #: ../../library/array.rst:83 msgid "" "Complex types (``Zf`` and ``Zd``) are available unconditionally, regardless " "on support for complex types (the Annex G of the C11 standard) by the C " "compiler. As specified in the C11 standard, each complex type is represented" " by a two-element C array containing, respectively, the real and imaginary " "parts." msgstr "" #: ../../library/array.rst:93 msgid "" "The :ref:`ctypes ` and :ref:`struct ` modules, as well as third-party modules like `numpy " "`__," " use similar -- but slightly different -- type codes." msgstr "" #: ../../library/array.rst:99 msgid "" "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 :attr:`array.itemsize` attribute." msgstr "值的实际表示是由机器架构(严格说是由 C 实现)决定的。实际大小可以通过 :attr:`array.itemsize` 属性来访问。" #: ../../library/array.rst:103 msgid "The module defines the following item:" msgstr "此模块定义了以下项目:" #: ../../library/array.rst:108 msgid "A tuple with all available type codes." msgstr "" #: ../../library/array.rst:110 msgid "The type changed from :class:`str` to :class:`tuple`." msgstr "" #: ../../library/array.rst:114 msgid "The module defines the following type:" msgstr "此模块定义了以下类型:" #: ../../library/array.rst:119 msgid "" "A new array whose items are restricted by *typecode*, and initialized 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." msgstr "" "一个由 *typecode* 限定其条目的新数组,并能根据可选的 *initializer* 值来初始化。*initializer* 必须是 " ":class:`bytes` 或 :class:`bytearray` 对象、Unicode 字符串或元素类型合适的可迭代对象。" #: ../../library/array.rst:124 msgid "" "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." msgstr "" "如果给定了一个 :class:`bytes` 或 :class:`bytearray` 对象,则将 *initializer* 传给新数组的 " ":meth:`frombytes` 方法;如果给定了一个 Unicode 字符串,则将 *initializer* 传给 " ":meth:`fromunicode` 方法;在其他情况下,则将 *initializer* 的迭代器传给 :meth:`extend` " "方法以向数组添加初始条目。" #: ../../library/array.rst:131 msgid "" "Array objects support the ordinary :ref:`mutable ` " ":term:`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 ` are supported." msgstr "" "数组对象支持普通的 :ref:`可变 ` :term:`sequence` 操作如索引、切片、拼接和重复等。 " "当使用切片赋值时,所赋的值必须为具有相同类型码的数组对象;在所有其他情况下,都将引发 :exc:`TypeError`。 " "数组对象还实现了缓冲区接口,可以被用于所有支持 :term:`字节型对象 ` 的场合。" #: ../../library/array.rst:137 msgid "" "Raises an :ref:`auditing event ` ``array.__new__`` with arguments " "``typecode``, ``initializer``." msgstr "" "引发一个 :ref:`审计事件 ` ``array.__new__`` 并附带参数 ``typecode``, " "``initializer``." #: ../../library/array.rst:142 msgid "The typecode character used to create the array." msgstr "在创建数组时使用的类型码字符。" #: ../../library/array.rst:147 msgid "The length in bytes of one array item in the internal representation." msgstr "内部表示中,单个数组项的长度。单位为字节。" #: ../../library/array.rst:152 msgid "Append a new item with the specified value to the end of the array." msgstr "" #: ../../library/array.rst:157 msgid "" "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." msgstr "" "返回一个元组 ``(address, length)`` " "给出存放数组内容的内存缓冲区的当前地址和长度(以元素个数为单位)。以字节为单位的内存缓冲区大小可通过 ``array.buffer_info()[1] " "* array.itemsize`` 来计算。工作在需要内存地址的底层(因此天然地不够安全)的 I/O 接口上时,这有时会有用,例如某些 " ":c:func:`!ioctl` 操作。只要数组还存在,并且没有对其应用过改变长度的操作,则返回的数值就是有效的。" #: ../../library/array.rst:167 msgid "" "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`." msgstr "" "只有在使用以 C 或 C++ " "编写的代码中的数组对象时,才能有效利用该信息,但此时,更合理的是,使用数组对象支持的缓冲区接口。因此,该方法的存在仅仅是为了向后兼容性,应避免在新代码中使用。缓冲区接口的文档参见" " :ref:`bufferobjects`." #: ../../library/array.rst:176 msgid "" "\"Byteswap\" all items of the array. This is only supported for values " "which are 1, 2, 4, 8 or 16 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. Note, that for complex " "types the order of components (the real part, followed by imaginary part) is" " preserved." msgstr "" #: ../../library/array.rst:185 msgid "Return the number of occurrences of *value* in the array." msgstr "" #: ../../library/array.rst:190 msgid "" "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." msgstr "" "将来自 *iterable* 的项添加到数组末尾。如果 *iterable* 是另一个数组,它必须具有 *完全* 相同的类型码;否则将引发 " ":exc:`TypeError`。如果 *iterable* 不是一个数组,则它必须为可迭代对象且其元素的类型须为可添加到数组的适当类型。" #: ../../library/array.rst:198 msgid "" "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)." msgstr "" "添加来自 :term:`bytes-like object` 的条目,将其内容解读为由机器值组成的数组(就像是使用 :meth:`fromfile` " "方法从文件中读取内容一样)。" #: ../../library/array.rst:202 msgid ":meth:`!fromstring` is renamed to :meth:`frombytes` for clarity." msgstr ":meth:`!fromstring` 被重命名为含义更准确的 :meth:`frombytes`。" #: ../../library/array.rst:208 msgid "" "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." msgstr "" "从 :term:`file object` *f* 中读取 *n* 项(视为机器值)并将它们添加到数组末尾。如果可用的项少于 *n* 项,则会引发 " ":exc:`EOFError`,但可用的项仍然会被加进数组。" #: ../../library/array.rst:216 msgid "" "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." msgstr "" "将来自列表的项添加到数组末尾。等价于 ``for x in list: a.append(x)``,而不同之处在于,若发生类型错误,数组则不会被改变。" #: ../../library/array.rst:222 msgid "" "Extends this array with data from the given Unicode string. 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 array of some other type." msgstr "" "使用来自给定的 Unicode 字符串的数据扩展该数组。该数组的类型码必须为 ``'u'`` 或 ``'w'``;否则将引发 " ":exc:`ValueError`。请使用 ``array.frombytes(unicodestring.encode(enc))`` 将 " "Unicode 数据添加到其他类型的数组。" #: ../../library/array.rst:230 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *value* in the array. The optional arguments *start* and *stop* can be " "specified to search for *value* within a subsection of the array. Raise " ":exc:`ValueError` if *value* is not found." msgstr "" #: ../../library/array.rst:235 msgid "Added optional *start* and *stop* parameters." msgstr "添加了可选的 *start* 和 *stop* 形参。" #: ../../library/array.rst:241 msgid "" "Insert a new item *value* in the array before position *index*. Negative " "values are treated as being relative to the end of the array." msgstr "" #: ../../library/array.rst:247 msgid "" "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." msgstr "从数组中移除下标为 *i* 的项并将其返回。可选参数默认值为 ``-1``,因此默认移除并返回末项。" #: ../../library/array.rst:254 msgid "Remove the first occurrence of *value* from the array." msgstr "从数组中移除第一个出现的 *value*。" #: ../../library/array.rst:259 msgid "Remove all elements from the array." msgstr "从数组中移除所有元素。" #: ../../library/array.rst:266 msgid "Reverse the order of the items in the array." msgstr "反转数组中各项的顺序。" #: ../../library/array.rst:271 msgid "" "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.)" msgstr "将数组转换为一个由机器值组成的数组并返回其字节表示(和用 :meth:`tofile` 方法写入文件的字节序列相同)。" #: ../../library/array.rst:275 msgid ":meth:`!tostring` is renamed to :meth:`tobytes` for clarity." msgstr ":meth:`!tostring` 被重命名为含义更准确的 :meth:`tobytes`。" #: ../../library/array.rst:281 msgid "Write all items (as machine values) to the :term:`file object` *f*." msgstr "将所有项(作为机器值)写入 :term:`file object` *f*。" #: ../../library/array.rst:286 msgid "Convert the array to an ordinary list with the same items." msgstr "将数组转换为由相同的项组成的普通列表。" #: ../../library/array.rst:291 msgid "" "Convert the array to a Unicode string. The array must have a type ``'u'`` " "or ``'w'``; otherwise a :exc:`ValueError` is raised. Use " "``array.tobytes().decode(enc)`` to obtain a Unicode string from an array of " "some other type." msgstr "" "将数组转换为一个 Unicode 字符串。数组的类型必须为 ``'u'`` 或 ``'w'``;否则将引发 :exc:`ValueError`。 请使用" " ``array.tobytes().decode(enc)`` 来从其他类型的数组获取 Unicode 字符串。" #: ../../library/array.rst:296 msgid "" "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 array with the same type and value " "using :func:`eval`, so long as the :class:`~array.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::" msgstr "" "数组对象的字符串表示形式是 ``array(typecode, initializer)``。如果数组为空则 *initializer* " "将被省略,否则如果 *typecode* 为 ``'u'`` 或 ``'w'`` 则为 Unicode 字符串,否则为由数字组成的列表。只要 " ":class:`~array.array` 类是使用 ``from array import array`` 导入的,该字符串表示形式就保证能使用 " ":func:`eval` 转换回具有相同类型和值的数组。如果它包含相应的浮点数值则还必须定义变量 ``inf`` 和 ``nan``。例如::" #: ../../library/array.rst:308 msgid "" "array('l')\n" "array('w', 'hello \\u2641')\n" "array('l', [1, 2, 3, 4, 5])\n" "array('d', [1.0, 2.0, 3.14, -inf, nan])" msgstr "" "array('l')\n" "array('w', 'hello \\u2641')\n" "array('l', [1, 2, 3, 4, 5])\n" "array('d', [1.0, 2.0, 3.14, -inf, nan])" #: ../../library/array.rst:316 msgid "Module :mod:`struct`" msgstr ":mod:`struct` 模块" #: ../../library/array.rst:317 msgid "Packing and unpacking of heterogeneous binary data." msgstr "打包和解包异构二进制数据。" #: ../../library/array.rst:319 msgid "`NumPy `_" msgstr "`NumPy `_" #: ../../library/array.rst:320 msgid "The NumPy package defines another array type." msgstr "NumPy 包定义了另一数组类型。" #: ../../library/array.rst:7 msgid "arrays" msgstr "数组"