-
-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathbisect.po
More file actions
244 lines (214 loc) · 11.5 KB
/
bisect.po
File metadata and controls
244 lines (214 loc) · 11.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2025, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# python-doc bot, 2025
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-03 16:02+0000\n"
"PO-Revision-Date: 2025-09-22 15:57+0000\n"
"Last-Translator: python-doc bot, 2025\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/bisect.rst:2
msgid ":mod:`bisect` --- Array bisection algorithm"
msgstr ":mod:`bisect` --- 数组二分查找算法"
#: ../../library/bisect.rst:10
msgid "**Source code:** :source:`Lib/bisect.py`"
msgstr "**源代码:** :source:`Lib/bisect.py`"
#: ../../library/bisect.rst:14
msgid ""
"This module provides support for maintaining a list in sorted order without "
"having to sort the list after each insertion. For long lists of items with "
"expensive comparison operations, this can be an improvement over the more "
"common approach. The module is called :mod:`bisect` because it uses a basic"
" bisection algorithm to do its work. The source code may be most useful as "
"a working example of the algorithm (the boundary conditions are already "
"right!)."
msgstr ""
"这个模块对有序列表提供了支持,使得他们可以在插入新数据仍然保持有序。对于长列表,如果其包含元素的比较操作十分昂贵的话,这可以是对更常见方法的改进。这个模块叫做"
" :mod:`bisect` 因为其使用了基本的二分(bisection)算法。源代码也可以作为很棒的算法示例(边界判断也做好啦!)"
#: ../../library/bisect.rst:21
msgid "The following functions are provided:"
msgstr "定义了以下函数:"
#: ../../library/bisect.rst:26
msgid ""
"Locate the insertion point for *x* in *a* to maintain sorted order. The "
"parameters *lo* and *hi* may be used to specify a subset of the list which "
"should be considered; by default the entire list is used. If *x* is already"
" present in *a*, the insertion point will be before (to the left of) any "
"existing entries. The return value is suitable for use as the first "
"parameter to ``list.insert()`` assuming that *a* is already sorted."
msgstr ""
"在 *a* 中找到 *x* 合适的插入点以维持有序。参数 *lo* 和 *hi* 可以被用于确定需要考虑的子集;默认情况下整个列表都会被使用。如果 "
"*x* 已经在 *a* 里存在,那么插入点会在已存在元素之前(也就是左边)。如果 *a* 是列表(list)的话,返回值是可以被放在 "
"``list.insert()`` 的第一个参数的。"
#: ../../library/bisect.rst:33
msgid ""
"The returned insertion point *i* partitions the array *a* into two halves so"
" that ``all(val < x for val in a[lo : i])`` for the left side and ``all(val "
">= x for val in a[i : hi])`` for the right side."
msgstr ""
"返回的插入点 *i* 将数组 *a* 分成两半,使得 ``all(val < x for val in a[lo : i])`` 在左半边而 "
"``all(val >= x for val in a[i : hi])`` 在右半边。"
#: ../../library/bisect.rst:37 ../../library/bisect.rst:58
msgid ""
"*key* specifies a :term:`key function` of one argument that is used to "
"extract a comparison key from each element in the array. To support "
"searching complex records, the key function is not applied to the *x* value."
msgstr ""
"*key* 指定带有单个参数的 :term:`key function` 用来从数组的每个元素中提取比较键。 为了支持搜索复杂记录,键函数不会被应用到 "
"*x* 值。"
#: ../../library/bisect.rst:41 ../../library/bisect.rst:62
msgid ""
"If *key* is ``None``, the elements are compared directly with no intervening"
" function call."
msgstr "如果 *key* 为 ``None``,则将直接进行元素比较而不需要中间的函数调用。"
#: ../../library/bisect.rst:44 ../../library/bisect.rst:65
#: ../../library/bisect.rst:83 ../../library/bisect.rst:103
msgid "Added the *key* parameter."
msgstr "增加了 *key* 形参。"
#: ../../library/bisect.rst:51
msgid ""
"Similar to :func:`bisect_left`, but returns an insertion point which comes "
"after (to the right of) any existing entries of *x* in *a*."
msgstr "类似于 :func:`bisect_left`,但是返回的插入点是 *a* 中已存在元素 *x* 的右侧。"
#: ../../library/bisect.rst:54
msgid ""
"The returned insertion point *i* partitions the array *a* into two halves so"
" that ``all(val <= x for val in a[lo : i])`` for the left side and ``all(val"
" > x for val in a[i : hi])`` for the right side."
msgstr ""
"返回的插入点 *i* 将数组 *a* 分成两半,使得左半边为 ``all(val <= x for val in a[lo : i])`` 而右半边为 "
"``all(val > x for val in a[i : hi])``。"
#: ../../library/bisect.rst:71
msgid "Insert *x* in *a* in sorted order."
msgstr "按照已排序顺序将 *x* 插入到 *a* 中。"
#: ../../library/bisect.rst:73
msgid ""
"This function first runs :func:`bisect_left` to locate an insertion point. "
"Next, it runs the :meth:`insert` method on *a* to insert *x* at the "
"appropriate position to maintain sort order."
msgstr ""
"此函数首先会运行 :func:`bisect_left` 来定位一个插入点。 然后,它会在 *a* 上运行 :meth:`insert` "
"方法在正确的位置插入 *x* 以保持排序顺序。"
#: ../../library/bisect.rst:77 ../../library/bisect.rst:97
msgid ""
"To support inserting records in a table, the *key* function (if any) is "
"applied to *x* for the search step but not for the insertion step."
msgstr "为了支持将记录插入到表中,*key* 函数(如果存在)将被应用到 *x* 用于搜索步骤但不会用于插入步骤。"
#: ../../library/bisect.rst:80 ../../library/bisect.rst:100
msgid ""
"Keep in mind that the ``O(log n)`` search is dominated by the slow O(n) "
"insertion step."
msgstr "请记住 ``O(log n)`` 搜索是由缓慢的 O(n) 抛入步骤主导的。"
#: ../../library/bisect.rst:90
msgid ""
"Similar to :func:`insort_left`, but inserting *x* in *a* after any existing "
"entries of *x*."
msgstr "类似于 :func:`insort_left`,但是把 *x* 插入到 *a* 中已存在元素 *x* 的右侧。"
#: ../../library/bisect.rst:93
msgid ""
"This function first runs :func:`bisect_right` to locate an insertion point. "
"Next, it runs the :meth:`insert` method on *a* to insert *x* at the "
"appropriate position to maintain sort order."
msgstr ""
"此函数首先会运行 :func:`bisect_right` 来定位一个插入点。 然后,它会在 *a* 上运行 :meth:`insert` "
"方法在正确的位置插入 *x* 以保持排序顺序。"
#: ../../library/bisect.rst:108
msgid "Performance Notes"
msgstr "性能说明"
#: ../../library/bisect.rst:110
msgid ""
"When writing time sensitive code using *bisect()* and *insort()*, keep these"
" thoughts in mind:"
msgstr "当使用 *bisect()* 和 *insort()* 编写时间敏感的代码时,请记住以下概念。"
#: ../../library/bisect.rst:113
msgid ""
"Bisection is effective for searching ranges of values. For locating specific"
" values, dictionaries are more performant."
msgstr "二分法对于搜索一定范围的值是很高效的。 对于定位特定的值,则字典的性能更好。"
#: ../../library/bisect.rst:116
msgid ""
"The *insort()* functions are ``O(n)`` because the logarithmic search step is"
" dominated by the linear time insertion step."
msgstr "*insort()* 函数的时间复杂度为 ``O(n)`` 因为对数时间的搜索步骤被线性时间的插入步骤所主导。"
#: ../../library/bisect.rst:119
msgid ""
"The search functions are stateless and discard key function results after "
"they are used. Consequently, if the search functions are used in a loop, "
"the key function may be called again and again on the same array elements. "
"If the key function isn't fast, consider wrapping it with "
":func:`functools.cache` to avoid duplicate computations. Alternatively, "
"consider searching an array of precomputed keys to locate the insertion "
"point (as shown in the examples section below)."
msgstr ""
"这些搜索函数都是无状态的并且会在它们被使用后丢弃键函数的结果。 因此,如果在一个循环中使用搜索函数,则键函数可能会在同一个数据元素上被反复调用。 "
"如果键函数速度不快,请考虑用 :func:`functools.cache` 来包装它以避免重复计算。 "
"另外,也可以考虑搜索一个预先计算好的键数组来定位插入点(如下面的示例节所演示的)。"
#: ../../library/bisect.rst:129
msgid ""
"`Sorted Collections <https://grantjenks.com/docs/sortedcollections/>`_ is a "
"high performance module that uses *bisect* to managed sorted collections of "
"data."
msgstr ""
"`Sorted Collections <https://grantjenks.com/docs/sortedcollections/>`_ 是一个使用"
" *bisect* 来管理数据的已排序多项集的高性能模块。"
#: ../../library/bisect.rst:133
msgid ""
"The `SortedCollection recipe "
"<https://code.activestate.com/recipes/577197-sortedcollection/>`_ uses "
"bisect to build a full-featured collection class with straight-forward "
"search methods and support for a key-function. The keys are precomputed to "
"save unnecessary calls to the key function during searches."
msgstr ""
"`SortedCollection recipe "
"<https://code.activestate.com/recipes/577197-sortedcollection/>`_ 使用 bisect "
"构建了一个功能完整的多项集类,拥有直观的搜索方法和对键函数的支持。 所有键函数都 是预先计算好的以避免在搜索期间对键函数的不必要的调用。"
#: ../../library/bisect.rst:141
msgid "Searching Sorted Lists"
msgstr "搜索有序列表"
#: ../../library/bisect.rst:143
msgid ""
"The above :func:`bisect` functions are useful for finding insertion points "
"but can be tricky or awkward to use for common searching tasks. The "
"following five functions show how to transform them into the standard "
"lookups for sorted lists::"
msgstr ""
"上面的 :func:`bisect` 函数对于找到插入点是有用的,但在一般的搜索任务中可能会有点尴尬。下面 5 "
"个函数展示了如何将其转变成有序列表中的标准查找函数 ::"
#: ../../library/bisect.rst:185
msgid "Examples"
msgstr "例子"
#: ../../library/bisect.rst:189
msgid ""
"The :func:`bisect` function can be useful for numeric table lookups. This "
"example uses :func:`bisect` to look up a letter grade for an exam score "
"(say) based on a set of ordered numeric breakpoints: 90 and up is an 'A', 80"
" to 89 is a 'B', and so on::"
msgstr ""
"函数 :func:`bisect` 还可以用于数字表查询。这个例子是使用 :func:`bisect` "
"从一个给定的考试成绩集合里,通过一个有序数字表,查出其对应的字母等级:90 分及以上是 'A',80 到 89 是 'B',以此类推 ::"
#: ../../library/bisect.rst:201
msgid ""
"The :func:`bisect` and :func:`insort` functions also work with lists of "
"tuples. The *key* argument can serve to extract the field used for ordering"
" records in a table::"
msgstr ""
":func:`bisect` 和 :func:`insort` 函数也适用于列表和元组。 *key* 参数可被用来提取在表中为记录排序所使用的字段::"
#: ../../library/bisect.rst:235
msgid ""
"If the key function is expensive, it is possible to avoid repeated function "
"calls by searching a list of precomputed keys to find the index of a "
"record::"
msgstr "如果键函数较为消耗资源,可以通过搜索一个预先计算的键列表来查找记录的索引以避免重复的函数调用::"