diff --git a/library/bisect.po b/library/bisect.po
index bfa137fdc9..71779cd9da 100644
--- a/library/bisect.po
+++ b/library/bisect.po
@@ -13,12 +13,12 @@ msgstr ""
"POT-Creation-Date: 2021-10-16 21:42+0200\n"
"PO-Revision-Date: 2020-07-22 13:24-0300\n"
"Last-Translator: \n"
-"Language: es\n"
"Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Generated-By: Babel 2.9.1\n"
#: ../Doc/library/bisect.rst:2
@@ -69,15 +69,14 @@ msgstr ""
"parámetro para ``list.insert()``, suponiendo que *a* ya está ordenada."
#: ../Doc/library/bisect.rst:33
-#, fuzzy
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 ""
-"El punto de inserción retornado *i* particiona al arreglo *a* en dos "
-"mitades, tal que ``all(val < x for val in a[lo:i])`` para el lado izquierdo "
-"y ``all(val >= x for val in a[i:hi])`` para el derecho."
+"El punto de inserción retornado *i* divide el arreglo *a* en dos mitades, de "
+"modo que ``all(val < x for val in a[lo : i])`` para el lado izquierdo y "
+"``all(val >= x for val in a[i : hi])`` para el lado derecho."
#: ../Doc/library/bisect.rst:37 ../Doc/library/bisect.rst:55
#: ../Doc/library/bisect.rst:67 ../Doc/library/bisect.rst:88
@@ -86,11 +85,14 @@ msgid ""
"extract a comparison key from each input element. The default value is "
"``None`` (compare the elements directly)."
msgstr ""
+"*key* especifica un :term:`key function` de un argumento que se utiliza para "
+"extraer una clave de comparación de cada elemento de entrada. El valor "
+"predeterminado es ``None`` (compare los elementos directamente)."
#: ../Doc/library/bisect.rst:41 ../Doc/library/bisect.rst:59
#: ../Doc/library/bisect.rst:78 ../Doc/library/bisect.rst:99
msgid "Added the *key* parameter."
-msgstr ""
+msgstr "Se agregó el parámetro *key*."
#: ../Doc/library/bisect.rst:48
msgid ""
@@ -101,19 +103,18 @@ msgstr ""
"después (a la derecha de) cualquier entrada de *x* en *a*."
#: ../Doc/library/bisect.rst:51
-#, fuzzy
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 ""
-"El punto de inserción retornado *i* particiona al arreglo *a* en dos "
-"mitades, tal que ``all(val <= x for val in a[lo:i])`` para el lado izquierdo "
-"y ``all(val > x for val in a[i:hi])`` para el derecho."
+"El punto de inserción retornado *i* divide el arreglo *a* en dos mitades, de "
+"modo que ``all(val <= x for val in a[lo : i])`` para el lado izquierdo y "
+"``all(val > x for val in a[i : hi])`` para el lado derecho."
#: ../Doc/library/bisect.rst:65
msgid "Insert *x* in *a* in sorted order."
-msgstr ""
+msgstr "Inserte *x* en *a* en orden ordenado."
#: ../Doc/library/bisect.rst:71
msgid ""
@@ -121,12 +122,17 @@ msgid ""
"Next, it runs the :meth:`insert` method on *a* to insert *x* at the "
"appropriate position to maintain sort order."
msgstr ""
+"Esta función primero ejecuta :func:`bisect_left` para localizar un punto de "
+"inserción. A continuación, ejecuta el método :meth:`insert` en *a* para "
+"insertar *x* en la posición adecuada para mantener el orden de clasificación."
#: ../Doc/library/bisect.rst:75 ../Doc/library/bisect.rst:96
msgid ""
"Keep in mind that the ``O(log n)`` search is dominated by the slow O(n) "
"insertion step."
msgstr ""
+"Tenga en cuenta que la búsqueda ``O(log n)`` está dominada por el lento paso "
+"de inserción O (n)."
#: ../Doc/library/bisect.rst:85
msgid ""
@@ -142,28 +148,37 @@ msgid ""
"Next, it runs the :meth:`insert` method on *a* to insert *x* at the "
"appropriate position to maintain sort order."
msgstr ""
+"Esta función primero ejecuta :func:`bisect_right` para localizar un punto de "
+"inserción. A continuación, ejecuta el método :meth:`insert` en *a* para "
+"insertar *x* en la posición adecuada para mantener el orden de clasificación."
#: ../Doc/library/bisect.rst:104
msgid "Performance Notes"
-msgstr ""
+msgstr "Notas de rendimiento"
#: ../Doc/library/bisect.rst:106
msgid ""
"When writing time sensitive code using *bisect()* and *insort()*, keep these "
"thoughts in mind:"
msgstr ""
+"Al escribir código sensible al tiempo usando *bisect()* y *insort()*, tenga "
+"en cuenta estos pensamientos:"
#: ../Doc/library/bisect.rst:109
msgid ""
"Bisection is effective for searching ranges of values. For locating specific "
"values, dictionaries are more performant."
msgstr ""
+"La bisección es eficaz para buscar rangos de valores. Para localizar valores "
+"específicos, los diccionarios son más eficaces."
#: ../Doc/library/bisect.rst:112
msgid ""
"The *insort()* functions are ``O(n)`` because the logarithmic search step is "
"dominated by the linear time insertion step."
msgstr ""
+"Las funciones *insort()* son ``O(n)`` porque el paso de búsqueda logarítmica "
+"está dominado por el paso de inserción de tiempo lineal."
#: ../Doc/library/bisect.rst:115
msgid ""
@@ -175,6 +190,14 @@ msgid ""
"an array of precomputed keys to locate the insertion point (as shown in the "
"examples section below)."
msgstr ""
+"Las funciones de búsqueda no tienen estado y descartan los resultados de las "
+"funciones clave después de su uso. En consecuencia, si las funciones de "
+"búsqueda se utilizan en un bucle, la función clave se puede llamar una y "
+"otra vez en los mismos elementos del arreglo. Si la función clave no es "
+"rápida, considere envolverla con :func:`functools.cache` para evitar "
+"cálculos duplicados. Alternativamente, considere buscar un arreglo de claves "
+"precalculadas para ubicar el punto de inserción (como se muestra en la "
+"sección de ejemplos a continuación)."
#: ../Doc/library/bisect.rst:125
msgid ""
@@ -182,9 +205,11 @@ msgid ""
"a high performance module that uses *bisect* to managed sorted collections "
"of data."
msgstr ""
+"`Sorted Collections `_ es "
+"un módulo de alto rendimiento que utiliza *bisect* para gestionar "
+"colecciones de datos ordenadas."
#: ../Doc/library/bisect.rst:129
-#, fuzzy
msgid ""
"The `SortedCollection recipe `_ uses bisect to build a full-featured collection class "
@@ -192,12 +217,11 @@ msgid ""
"keys are precomputed to save unnecessary calls to the key function during "
"searches."
msgstr ""
-"`Receta SortedCollection `_ que usa bisección para construir una \"clase-colección"
-"\" con todas las funcionalidades, con métodos de búsqueda directos y con "
-"soporte para una función-clave (*key-function*). Las claves son procesadas "
-"de antemano, para ahorrar llamadas innecesarias a la función clave durante "
-"las búsquedas."
+"El `SortedCollection recipe `_ usa bisect para construir una clase de colección con "
+"todas las funciones con métodos de búsqueda sencillos y soporte para una "
+"función clave. Las teclas se calculan previamente para ahorrar llamadas "
+"innecesarias a la función de la tecla durante las búsquedas."
#: ../Doc/library/bisect.rst:137
msgid "Searching Sorted Lists"
@@ -216,9 +240,8 @@ msgstr ""
"convertirlas en búsquedas estándar para listas ordenadas::"
#: ../Doc/library/bisect.rst:181
-#, fuzzy
msgid "Examples"
-msgstr "Otros ejemplos"
+msgstr "Ejemplos"
#: ../Doc/library/bisect.rst:185
msgid ""
@@ -233,32 +256,9 @@ msgstr ""
"ordenadas: 90 o más es una 'A', de 80 a 89 es una 'B', y así sucesivamente::"
#: ../Doc/library/bisect.rst:197
-#, fuzzy
msgid ""
"One technique to avoid repeated calls to a key function is to search a list "
"of precomputed keys to find the index of a record::"
msgstr ""
-"En su lugar, es mejor buscar en una lista de claves procesadas de antemano "
-"para encontrar el índice del registro en cuestión::"
-
-#~ msgid ""
-#~ "Insert *x* in *a* in sorted order. This is equivalent to ``a."
-#~ "insert(bisect.bisect_left(a, x, lo, hi), x)`` assuming that *a* is "
-#~ "already sorted. Keep in mind that the O(log n) search is dominated by "
-#~ "the slow O(n) insertion step."
-#~ msgstr ""
-#~ "Inserta *x* en *a* de forma ordenada. Esto equivale a ``a.insert(bisect."
-#~ "bisect_left(a, x, lo, hi), x)``, suponiendo que *a* ya está ordenada. "
-#~ "Tenga presente que la búsqueda O(log n) está dominada por el paso de "
-#~ "inserción O(n) lento."
-
-#~ msgid ""
-#~ "Unlike the :func:`sorted` function, it does not make sense for the :func:"
-#~ "`bisect` functions to have *key* or *reversed* arguments because that "
-#~ "would lead to an inefficient design (successive calls to bisect functions "
-#~ "would not \"remember\" all of the previous key lookups)."
-#~ msgstr ""
-#~ "A diferencia de la función :func:`sorted`, no tiene sentido para las "
-#~ "funciones :func:`bisect` tener los argumentos *key* o *reversed*, porque "
-#~ "conduciría a un diseño ineficiente (llamadas sucesivas a funciones de "
-#~ "bisección no \"recordarían\" todas las búsquedas previas con clave)."
+"Una técnica para evitar llamadas repetidas a una función de tecla es buscar "
+"en una lista de teclas precalculadas para encontrar el índice de un registro:"