# Copyright (C) 2001-2020, Python Software Foundation
# This file is distributed under the same license as the Python package.
# Maintained by the python-doc-es workteam.
# docs-es@python.org /
# https://mail.python.org/mailman3/lists/docs-es.python.org/
# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to
# get the list of volunteers
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.8\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-05-05 12:54+0200\n"
"PO-Revision-Date: 2020-05-09 13:51+0200\n"
"Last-Translator: \n"
"Language: es\n"
"Language-Team: python-doc-es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
"X-Generator: Poedit 2.3\n"
#: ../Doc/tutorial/datastructures.rst:5
msgid "Data Structures"
msgstr "Estructuras de datos"
#: ../Doc/tutorial/datastructures.rst:7
msgid ""
"This chapter describes some things you've learned about already in more "
"detail, and adds some new things as well."
msgstr ""
"Este capítulo describe algunas cosas que ya has aprendido en más detalle y "
"agrega algunas cosas nuevas también."
#: ../Doc/tutorial/datastructures.rst:13
msgid "More on Lists"
msgstr "Más sobre listas"
#: ../Doc/tutorial/datastructures.rst:15
msgid ""
"The list data type has some more methods. Here are all of the methods of "
"list objects:"
msgstr ""
"El tipo de dato lista tiene algunos métodos más. Aquí están todos los "
"métodos de los objetos lista:"
#: ../Doc/tutorial/datastructures.rst:22
msgid ""
"Add an item to the end of the list. Equivalent to ``a[len(a):] = [x]``."
msgstr "Agrega un ítem al final de la lista. Equivale a ``a[len(a):] = [x]``."
#: ../Doc/tutorial/datastructures.rst:28
msgid ""
"Extend the list by appending all the items from the iterable. Equivalent to "
"``a[len(a):] = iterable``."
msgstr ""
"Extiende la lista agregándole todos los ítems del iterable. Equivale a "
"``a[len(a):] = iterable``."
#: ../Doc/tutorial/datastructures.rst:35
msgid ""
"Insert an item at a given position. The first argument is the index of the "
"element before which to insert, so ``a.insert(0, x)`` inserts at the front "
"of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``."
msgstr ""
"Inserta un ítem en una posición dada. El primer argumento es el índice del "
"ítem delante del cual se insertará, por lo tanto ``a.insert(0, x)`` inserta "
"al principio de la lista y ``a.insert(len(a), x)`` equivale a ``a."
"append(x)``."
#: ../Doc/tutorial/datastructures.rst:43
msgid ""
"Remove the first item from the list whose value is equal to *x*. It raises "
"a :exc:`ValueError` if there is no such item."
msgstr ""
"Quita el primer ítem de la lista cuyo valor sea *x*. Lanza un :exc:"
"`ValueError` si no existe tal ítem."
#: ../Doc/tutorial/datastructures.rst:50
msgid ""
"Remove the item at the given position in the list, and return it. If no "
"index is specified, ``a.pop()`` removes and returns the last item in the "
"list. (The square brackets around the *i* in the method signature denote "
"that the parameter is optional, not that you should type square brackets at "
"that position. You will see this notation frequently in the Python Library "
"Reference.)"
msgstr ""
"Quita el ítem en la posición dada de la lista y lo retorna. Si no se "
"especifica un índice, ``a.pop()`` quita y retorna el último elemento de la "
"lista. (Los corchetes que encierran a *i* en la firma del método denotan que "
"el parámetro es opcional, no que deberías escribir corchetes en esa "
"posición. Verás esta notación con frecuencia en la Referencia de la "
"Biblioteca de Python.)"
#: ../Doc/tutorial/datastructures.rst:60
msgid "Remove all items from the list. Equivalent to ``del a[:]``."
msgstr "Elimina todos los elementos de la lista. Equivalente a ``del a[:]``."
#: ../Doc/tutorial/datastructures.rst:66
msgid ""
"Return zero-based index in the list of the first item whose value is equal "
"to *x*. Raises a :exc:`ValueError` if there is no such item."
msgstr ""
"Retorna el índice basado en cero del primer elemento cuyo valor sea igual a "
"*x*. Lanza una excepción :exc:`ValueError` si no existe tal elemento."
#: ../Doc/tutorial/datastructures.rst:69
msgid ""
"The optional arguments *start* and *end* are interpreted as in the slice "
"notation and are used to limit the search to a particular subsequence of the "
"list. The returned index is computed relative to the beginning of the full "
"sequence rather than the *start* argument."
msgstr ""
"Los argumentos opcionales *start* y *end* son interpretados como la notación "
"de rebanadas y se usan para limitar la búsqueda a un segmento particular de "
"la lista. El índice retornado se calcula de manera relativa al inicio de la "
"secuencia completa en lugar de con respecto al argumento *start*."
#: ../Doc/tutorial/datastructures.rst:78
msgid "Return the number of times *x* appears in the list."
msgstr "Retorna el número de veces que *x* aparece en la lista."
#: ../Doc/tutorial/datastructures.rst:84
msgid ""
"Sort the items of the list in place (the arguments can be used for sort "
"customization, see :func:`sorted` for their explanation)."
msgstr ""
"Ordena los elementos de la lista in situ (los argumentos pueden ser usados "
"para personalizar el orden de la lista, ver :func:`sorted` para su "
"explicación)."
#: ../Doc/tutorial/datastructures.rst:91
msgid "Reverse the elements of the list in place."
msgstr "Invierte los elementos de la lista in situ."
#: ../Doc/tutorial/datastructures.rst:97
msgid "Return a shallow copy of the list. Equivalent to ``a[:]``."
msgstr "Retorna una copia superficial de la lista. Equivalente a ``a[:]``."
#: ../Doc/tutorial/datastructures.rst:100
msgid "An example that uses most of the list methods::"
msgstr "Un ejemplo que usa la mayoría de los métodos de la lista::"
#: ../Doc/tutorial/datastructures.rst:123
msgid ""
"You might have noticed that methods like ``insert``, ``remove`` or ``sort`` "
"that only modify the list have no return value printed -- they return the "
"default ``None``. [1]_ This is a design principle for all mutable data "
"structures in Python."
msgstr ""
"Quizás hayas notado que métodos como `insert``, ``remove`` o ``sort`` que "
"únicamente modifican la lista no tienen impreso un valor de retorno -- "
"retornan el valor por defecto ``None``. [1]_ Esto es un principio de diseño "
"para todas las estructuras de datos mutables en Python."
#: ../Doc/tutorial/datastructures.rst:128
msgid ""
"Another thing you might notice is that not all data can be sorted or "
"compared. For instance, ``[None, 'hello', 10]`` doesn't sort because "
"integers can't be compared to strings and *None* can't be compared to other "
"types. Also, there are some types that don't have a defined ordering "
"relation. For example, ``3+4j < 5+7j`` isn't a valid comparison."
msgstr ""
"Otra cosa que puedes observar es que no todos los datos se pueden ordenar o "
"comparar. Por ejemplo, ``[None, 'hello', 10]`` no se puede ordenar ya que "
"los enteros no se pueden comparar con strings y *None* no se puede comparar "
"con los otros tipos. También hay algunos tipos que no tienen una relación de "
"orden definida. Por ejemplo, ``3+4j < 5+7j`` no es una comparación válida."
#: ../Doc/tutorial/datastructures.rst:139
msgid "Using Lists as Stacks"
msgstr "Usando listas como pilas"
#: ../Doc/tutorial/datastructures.rst:144
msgid ""
"The list methods make it very easy to use a list as a stack, where the last "
"element added is the first element retrieved (\"last-in, first-out\"). To "
"add an item to the top of the stack, use :meth:`append`. To retrieve an "
"item from the top of the stack, use :meth:`pop` without an explicit index. "
"For example::"
msgstr ""
"Los métodos de lista hacen que resulte muy fácil usar una lista como una "
"pila, donde el último elemento añadido es el primer elemento retirado "
"(\"último en entrar, primero en salir\"). Para agregar un elemento a la cima "
"de la pila, utiliza :meth:`append`. Para retirar un elemento de la cima de "
"la pila, utiliza :meth:`pop` sin un índice explícito. Por ejemplo:"
#: ../Doc/tutorial/datastructures.rst:169
msgid "Using Lists as Queues"
msgstr "Usando listas como colas"
#: ../Doc/tutorial/datastructures.rst:173
msgid ""
"It is also possible to use a list as a queue, where the first element added "
"is the first element retrieved (\"first-in, first-out\"); however, lists are "
"not efficient for this purpose. While appends and pops from the end of list "
"are fast, doing inserts or pops from the beginning of a list is slow "
"(because all of the other elements have to be shifted by one)."
msgstr ""
"También es posible usar una lista como una cola, donde el primer elemento "
"añadido es el primer elemento retirado (\"primero en entrar, primero en salir"
"\"); sin embargo, las listas no son eficientes para este propósito. Agregar "
"y sacar del final de la lista es rápido, pero insertar o sacar del comienzo "
"de una lista es lento (porque todos los otros elementos tienen que ser "
"desplazados por uno)."
#: ../Doc/tutorial/datastructures.rst:179
msgid ""
"To implement a queue, use :class:`collections.deque` which was designed to "
"have fast appends and pops from both ends. For example::"
msgstr ""
"Para implementar una cola, utiliza :class:`collections.deque` el cual fue "
"diseñado para añadir y quitar de ambas puntas de forma rápida. Por ejemplo::"
#: ../Doc/tutorial/datastructures.rst:197
msgid "List Comprehensions"
msgstr "Comprensión de listas"
#: ../Doc/tutorial/datastructures.rst:199
msgid ""
"List comprehensions provide a concise way to create lists. Common "
"applications are to make new lists where each element is the result of some "
"operations applied to each member of another sequence or iterable, or to "
"create a subsequence of those elements that satisfy a certain condition."
msgstr ""
"Las comprensiones de listas ofrecen una manera concisa de crear listas. Sus "
"usos comunes son para hacer nuevas listas donde cada elemento es el "
"resultado de algunas operaciones aplicadas a cada miembro de otra secuencia "
"o iterable, o para crear un segmento de la secuencia de esos elementos para "
"satisfacer una condición determinada."
#: ../Doc/tutorial/datastructures.rst:204
msgid "For example, assume we want to create a list of squares, like::"
msgstr ""
"Por ejemplo, asumamos que queremos crear una lista de cuadrados, como::"
#: ../Doc/tutorial/datastructures.rst:213
msgid ""
"Note that this creates (or overwrites) a variable named ``x`` that still "
"exists after the loop completes. We can calculate the list of squares "
"without any side effects using::"
msgstr ""
"Nota que esto crea (o sobreescribe) una variable llamada ``x`` que sigue "
"existiendo luego de que el bucle haya terminado. Podemos calcular la lista "
"de cuadrados sin ningún efecto secundario haciendo::"
#: ../Doc/tutorial/datastructures.rst:219
msgid "or, equivalently::"
msgstr "o, un equivalente::"
#: ../Doc/tutorial/datastructures.rst:223
msgid "which is more concise and readable."
msgstr "que es más conciso y legible."
#: ../Doc/tutorial/datastructures.rst:225
msgid ""
"A list comprehension consists of brackets containing an expression followed "
"by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!"
"if` clauses. The result will be a new list resulting from evaluating the "
"expression in the context of the :keyword:`!for` and :keyword:`!if` clauses "
"which follow it. For example, this listcomp combines the elements of two "
"lists if they are not equal::"
msgstr ""
"Una lista de comprensión consiste de corchetes rodeando una expresión "
"seguida de la declaración :keyword:`!for` y luego cero o más declaraciones :"
"keyword:`!for` o :keyword:`!if`. El resultado será una nueva lista que sale "
"de evaluar la expresión en el contexto de los :keyword:`!for` o :keyword:`!"
"if` que le siguen. Por ejemplo, esta lista de comprensión combina los "
"elementos de dos listas si no son iguales::"
#: ../Doc/tutorial/datastructures.rst:235
msgid "and it's equivalent to::"
msgstr "y es equivalente a::"
#: ../Doc/tutorial/datastructures.rst:246
msgid ""
"Note how the order of the :keyword:`for` and :keyword:`if` statements is the "
"same in both these snippets."
msgstr ""
"Notá como el orden de los :keyword:`for` y :keyword:`if` es el mismo en "
"ambos pedacitos de código."
#: ../Doc/tutorial/datastructures.rst:249
msgid ""
"If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), "
"it must be parenthesized. ::"
msgstr ""
"Si la expresión es una tupla (como el ``(x, y)`` en el ejemplo anterior), "
"debe estar entre paréntesis. ::"
#: ../Doc/tutorial/datastructures.rst:280
msgid ""
"List comprehensions can contain complex expressions and nested functions::"
msgstr ""
"Las comprensiones de listas pueden contener expresiones complejas y "
"funciones anidadas::"
#: ../Doc/tutorial/datastructures.rst:287
msgid "Nested List Comprehensions"
msgstr "Listas por comprensión anidadas"
#: ../Doc/tutorial/datastructures.rst:289
msgid ""
"The initial expression in a list comprehension can be any arbitrary "
"expression, including another list comprehension."
msgstr ""
"La expresión inicial de una comprensión de listas puede ser cualquier "
"expresión arbitraria, incluyendo otra comprensión de listas."
#: ../Doc/tutorial/datastructures.rst:292
msgid ""
"Consider the following example of a 3x4 matrix implemented as a list of 3 "
"lists of length 4::"
msgstr ""
"Considerá el siguiente ejemplo de una matriz de 3x4 implementada como una "
"lista de tres listas de largo 4::"
#: ../Doc/tutorial/datastructures.rst:301
msgid "The following list comprehension will transpose rows and columns::"
msgstr "La siguiente comprensión de lista transpondrá las filas y columnas::"
#: ../Doc/tutorial/datastructures.rst:306
msgid ""
"As we saw in the previous section, the nested listcomp is evaluated in the "
"context of the :keyword:`for` that follows it, so this example is equivalent "
"to::"
msgstr ""
"Como vimos en la sección anterior, la lista de comprensión anidada se evalúa "
"en el contexto del :keyword:`for` que lo sigue, por lo que este ejemplo "
"equivale a::"
#: ../Doc/tutorial/datastructures.rst:317
msgid "which, in turn, is the same as::"
msgstr "el cual, a la vez, es lo mismo que::"
#: ../Doc/tutorial/datastructures.rst:330
msgid ""
"In the real world, you should prefer built-in functions to complex flow "
"statements. The :func:`zip` function would do a great job for this use case::"
msgstr ""
"En el mundo real, deberías preferir funciones predefinidas a declaraciones "
"con flujo complejo. La función :func:`zip` haría un buen trabajo para este "
"caso de uso::"
#: ../Doc/tutorial/datastructures.rst:336
msgid ""
"See :ref:`tut-unpacking-arguments` for details on the asterisk in this line."
msgstr ""
"Ver :ref:`tut-unpacking-arguments` para detalles en el asterisco de esta "
"línea."
#: ../Doc/tutorial/datastructures.rst:341
msgid "The :keyword:`!del` statement"
msgstr "La instrucción :keyword:`del`"
#: ../Doc/tutorial/datastructures.rst:343
msgid ""
"There is a way to remove an item from a list given its index instead of its "
"value: the :keyword:`del` statement. This differs from the :meth:`pop` "
"method which returns a value. The :keyword:`!del` statement can also be "
"used to remove slices from a list or clear the entire list (which we did "
"earlier by assignment of an empty list to the slice). For example::"
msgstr ""
"Hay una manera de quitar un ítem de una lista dado su índice en lugar de su "
"valor: la instrucción :keyword:`del`. Esta es diferente del método :meth:"
"`pop`, el cual retorna un valor. La instrucción :keyword:`!del` también "
"puede usarse para quitar secciones de una lista o vaciar la lista completa "
"(lo que hacíamos antes asignando una lista vacía a la sección). Por "
"ejemplo::"
#: ../Doc/tutorial/datastructures.rst:360
msgid ":keyword:`del` can also be used to delete entire variables::"
msgstr ":keyword:`del` puede usarse también para eliminar variables::"
#: ../Doc/tutorial/datastructures.rst:364
msgid ""
"Referencing the name ``a`` hereafter is an error (at least until another "
"value is assigned to it). We'll find other uses for :keyword:`del` later."
msgstr ""
"Hacer referencia al nombre ``a`` de aquí en más es un error (al menos hasta "
"que se le asigne otro valor). Veremos otros usos para :keyword:`del` más "
"adelante."
#: ../Doc/tutorial/datastructures.rst:371
msgid "Tuples and Sequences"
msgstr "Tuplas y secuencias"
#: ../Doc/tutorial/datastructures.rst:373
msgid ""
"We saw that lists and strings have many common properties, such as indexing "
"and slicing operations. They are two examples of *sequence* data types "
"(see :ref:`typesseq`). Since Python is an evolving language, other sequence "
"data types may be added. There is also another standard sequence data type: "
"the *tuple*."
msgstr ""
"Vimos que las listas y cadenas tienen propiedades en común, como el indizado "
"y las operaciones de seccionado. Estas son dos ejemplos de datos de tipo "
"*secuencia* (ver :ref:`typesseq`). Como Python es un lenguaje en evolución, "
"otros datos de tipo secuencia pueden agregarse. Existe otro dato de tipo "
"secuencia estándar: la *tupla*."
#: ../Doc/tutorial/datastructures.rst:379
msgid ""
"A tuple consists of a number of values separated by commas, for instance::"
msgstr ""
"Una tupla consiste de un número de valores separados por comas, por ejemplo::"
#: ../Doc/tutorial/datastructures.rst:401
msgid ""
"As you see, on output tuples are always enclosed in parentheses, so that "
"nested tuples are interpreted correctly; they may be input with or without "
"surrounding parentheses, although often parentheses are necessary anyway (if "
"the tuple is part of a larger expression). It is not possible to assign to "
"the individual items of a tuple, however it is possible to create tuples "
"which contain mutable objects, such as lists."
msgstr ""
"Como puedes ver, en la salida las tuplas siempre se encierran entre "
"paréntesis, para que las tuplas anidadas puedan interpretarse correctamente; "
"pueden ingresarse con o sin paréntesis, aunque a menudo los paréntesis son "
"necesarios de todas formas (si la tupla es parte de una expresión más "
"grande). No es posible asignar a los ítems individuales de una tupla, pero "
"sin embargo sí se puede crear tuplas que contengan objetos mutables, como "
"las listas."
#: ../Doc/tutorial/datastructures.rst:408
msgid ""
"Though tuples may seem similar to lists, they are often used in different "
"situations and for different purposes. Tuples are :term:`immutable`, and "
"usually contain a heterogeneous sequence of elements that are accessed via "
"unpacking (see later in this section) or indexing (or even by attribute in "
"the case of :func:`namedtuples `). Lists are :term:"
"`mutable`, and their elements are usually homogeneous and are accessed by "
"iterating over the list."
msgstr ""
"A pesar de que las tuplas puedan parecerse a las listas, frecuentemente se "
"utilizan en distintas situaciones y para distintos propósitos. Las tuplas "
"son :term:`immutable` y normalmente contienen una secuencia heterogénea de "
"elementos que son accedidos al desempaquetar (ver más adelante en esta "
"sección) o indizar (o incluso acceder por atributo en el caso de las :func:"
"`namedtuples `). Las listas son :term:`mutable`, y "
"sus elementos son normalmente homogéneos y se acceden iterando a la lista."
#: ../Doc/tutorial/datastructures.rst:416
msgid ""
"A special problem is the construction of tuples containing 0 or 1 items: the "
"syntax has some extra quirks to accommodate these. Empty tuples are "
"constructed by an empty pair of parentheses; a tuple with one item is "
"constructed by following a value with a comma (it is not sufficient to "
"enclose a single value in parentheses). Ugly, but effective. For example::"
msgstr ""
"Un problema particular es la construcción de tuplas que contengan 0 o 1 "
"ítem: la sintaxis presenta algunas peculiaridades para estos casos. Las "
"tuplas vacías se construyen mediante un par de paréntesis vacío; una tupla "
"con un ítem se construye poniendo una coma a continuación del valor (no "
"alcanza con encerrar un único valor entre paréntesis). Feo, pero efectivo. "
"Por ejemplo::"
#: ../Doc/tutorial/datastructures.rst:431
msgid ""
"The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple "
"packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed "
"together in a tuple. The reverse operation is also possible::"
msgstr ""
"La declaración ``t = 12345, 54321, 'hola!'`` es un ejemplo de *empaquetado "
"de tuplas*: los valores ``12345``, ``54321`` y ``'hola!'`` se empaquetan "
"juntos en una tupla. La operación inversa también es posible::"
#: ../Doc/tutorial/datastructures.rst:437
msgid ""
"This is called, appropriately enough, *sequence unpacking* and works for any "
"sequence on the right-hand side. Sequence unpacking requires that there are "
"as many variables on the left side of the equals sign as there are elements "
"in the sequence. Note that multiple assignment is really just a combination "
"of tuple packing and sequence unpacking."
msgstr ""
"Esto se llama, apropiadamente, *desempaquetado de secuencias*, y funciona "
"para cualquier secuencia en el lado derecho del igual. El desempaquetado de "
"secuencias requiere que la cantidad de variables a la izquierda del signo "
"igual sea el tamaño de la secuencia. Notá que la asignación múltiple es en "
"realidad sólo una combinación de empaquetado de tuplas y desempaquetado de "
"secuencias."
#: ../Doc/tutorial/datastructures.rst:447
msgid "Sets"
msgstr "Conjuntos"
#: ../Doc/tutorial/datastructures.rst:449
msgid ""
"Python also includes a data type for *sets*. A set is an unordered "
"collection with no duplicate elements. Basic uses include membership "
"testing and eliminating duplicate entries. Set objects also support "
"mathematical operations like union, intersection, difference, and symmetric "
"difference."
msgstr ""
"Python también incluye un tipo de dato para *conjuntos*. Un conjunto es una "
"colección no ordenada y sin elementos repetidos. Los usos básicos de éstos "
"incluyen verificación de pertenencia y eliminación de entradas duplicadas. "
"Los conjuntos también soportan operaciones matemáticas como la unión, "
"intersección, diferencia, y diferencia simétrica."
#: ../Doc/tutorial/datastructures.rst:454
msgid ""
"Curly braces or the :func:`set` function can be used to create sets. Note: "
"to create an empty set you have to use ``set()``, not ``{}``; the latter "
"creates an empty dictionary, a data structure that we discuss in the next "
"section."
msgstr ""
"Las llaves o la función :func:`set` pueden usarse para crear conjuntos. Notá "
"que para crear un conjunto vacío tenés que usar ``set()``, no ``{}``; esto "
"último crea un diccionario vacío, una estructura de datos que discutiremos "
"en la sección siguiente."
#: ../Doc/tutorial/datastructures.rst:458
msgid "Here is a brief demonstration::"
msgstr "Una pequeña demostración::"
#: ../Doc/tutorial/datastructures.rst:483
msgid ""
"Similarly to :ref:`list comprehensions `, set comprehensions "
"are also supported::"
msgstr ""
"De forma similar a las :ref:`comprensiones de listas `, está "
"también soportada la comprensión de conjuntos::"
#: ../Doc/tutorial/datastructures.rst:494
msgid "Dictionaries"
msgstr "Diccionarios"
#: ../Doc/tutorial/datastructures.rst:496
msgid ""
"Another useful data type built into Python is the *dictionary* (see :ref:"
"`typesmapping`). Dictionaries are sometimes found in other languages as "
"\"associative memories\" or \"associative arrays\". Unlike sequences, which "
"are indexed by a range of numbers, dictionaries are indexed by *keys*, which "
"can be any immutable type; strings and numbers can always be keys. Tuples "
"can be used as keys if they contain only strings, numbers, or tuples; if a "
"tuple contains any mutable object either directly or indirectly, it cannot "
"be used as a key. You can't use lists as keys, since lists can be modified "
"in place using index assignments, slice assignments, or methods like :meth:"
"`append` and :meth:`extend`."
msgstr ""
"Otro tipo de dato útil incluido en Python es el *diccionario* (ver :ref:"
"`typesmapping`). Los diccionarios se encuentran a veces en otros lenguajes "
"como \"memorias asociativas\" o \"arreglos asociativos\". A diferencia de "
"las secuencias, que se indexan mediante un rango numérico, los diccionarios "
"se indexan con *claves*, que pueden ser cualquier tipo inmutable; las "
"cadenas y números siempre pueden ser claves. Las tuplas pueden usarse como "
"claves si solamente contienen cadenas, números o tuplas; si una tupla "
"contiene cualquier objeto mutable directa o indirectamente, no puede usarse "
"como clave. No podés usar listas como claves, ya que las listas pueden "
"modificarse usando asignación por índice, asignación por sección, o métodos "
"como :meth:`append` y :meth:`extend`."
#: ../Doc/tutorial/datastructures.rst:507
msgid ""
"It is best to think of a dictionary as a set of *key: value* pairs, with the "
"requirement that the keys are unique (within one dictionary). A pair of "
"braces creates an empty dictionary: ``{}``. Placing a comma-separated list "
"of key:value pairs within the braces adds initial key:value pairs to the "
"dictionary; this is also the way dictionaries are written on output."
msgstr ""
"Es mejor pensar en un diccionario como un conjunto de pares *clave:valor* "
"con el requerimiento de que las claves sean únicas (dentro de un "
"diccionario). Un par de llaves crean un diccionario vacío: ``{}``. Colocar "
"una lista de pares clave:valor separada por comas dentro de las llaves "
"agrega, de inicio, pares clave:valor al diccionario; esta es, también, la "
"forma en que los diccionarios se muestran en la salida."
#: ../Doc/tutorial/datastructures.rst:513
msgid ""
"The main operations on a dictionary are storing a value with some key and "
"extracting the value given the key. It is also possible to delete a key:"
"value pair with ``del``. If you store using a key that is already in use, "
"the old value associated with that key is forgotten. It is an error to "
"extract a value using a non-existent key."
msgstr ""
"Las operaciones principales sobre un diccionario son guardar un valor con "
"una clave y extraer ese valor dada la clave. También es posible borrar un "
"par clave:valor con ``del``. Si usás una clave que ya está en uso para "
"guardar un valor, el valor que estaba asociado con esa clave se pierde. Es "
"un error extraer un valor usando una clave no existente."
#: ../Doc/tutorial/datastructures.rst:519
msgid ""
"Performing ``list(d)`` on a dictionary returns a list of all the keys used "
"in the dictionary, in insertion order (if you want it sorted, just use "
"``sorted(d)`` instead). To check whether a single key is in the dictionary, "
"use the :keyword:`in` keyword."
msgstr ""
"Ejecutando ``list(d)`` en un diccionario retornará una lista con todas las "
"claves usadas en el diccionario, en el orden de inserción (si deseas que "
"esté ordenada simplemente usa ``sorted(d)`` en su lugar). Para comprobar si "
"una clave está en el diccionario usa la palabra clave :keyword:`in`."
#: ../Doc/tutorial/datastructures.rst:524
msgid "Here is a small example using a dictionary::"
msgstr "Un pequeño ejemplo de uso de un diccionario::"
#: ../Doc/tutorial/datastructures.rst:545
msgid ""
"The :func:`dict` constructor builds dictionaries directly from sequences of "
"key-value pairs::"
msgstr ""
"El constructor :func:`dict` crea un diccionario directamente desde "
"secuencias de pares clave-valor::"
#: ../Doc/tutorial/datastructures.rst:551
msgid ""
"In addition, dict comprehensions can be used to create dictionaries from "
"arbitrary key and value expressions::"
msgstr ""
"Además, las comprensiones de diccionarios se pueden usar para crear "
"diccionarios desde expresiones arbitrarias de clave y valor::"
#: ../Doc/tutorial/datastructures.rst:557
msgid ""
"When the keys are simple strings, it is sometimes easier to specify pairs "
"using keyword arguments::"
msgstr ""
"Cuando las claves son cadenas simples, a veces resulta más fácil especificar "
"los pares usando argumentos por palabra clave::"
#: ../Doc/tutorial/datastructures.rst:567
msgid "Looping Techniques"
msgstr "Técnicas de iteración"
#: ../Doc/tutorial/datastructures.rst:569
msgid ""
"When looping through dictionaries, the key and corresponding value can be "
"retrieved at the same time using the :meth:`items` method. ::"
msgstr ""
"Cuando iteramos sobre diccionarios, se pueden obtener al mismo tiempo la "
"clave y su valor correspondiente usando el método :meth:`items`. ::"
#: ../Doc/tutorial/datastructures.rst:579
msgid ""
"When looping through a sequence, the position index and corresponding value "
"can be retrieved at the same time using the :func:`enumerate` function. ::"
msgstr ""
"Cuando se itera sobre una secuencia, se puede obtener el índice de posición "
"junto a su valor correspondiente usando la función :func:`enumerate`. ::"
#: ../Doc/tutorial/datastructures.rst:589
msgid ""
"To loop over two or more sequences at the same time, the entries can be "
"paired with the :func:`zip` function. ::"
msgstr ""
"Para iterar sobre dos o más secuencias al mismo tiempo, los valores pueden "
"emparejarse con la función :func:`zip`. ::"
#: ../Doc/tutorial/datastructures.rst:601
msgid ""
"To loop over a sequence in reverse, first specify the sequence in a forward "
"direction and then call the :func:`reversed` function. ::"
msgstr ""
"Para iterar sobre una secuencia en orden inverso, se especifica primero la "
"secuencia al derecho y luego se llama a la función :func:`reversed`. ::"
#: ../Doc/tutorial/datastructures.rst:613
msgid ""
"To loop over a sequence in sorted order, use the :func:`sorted` function "
"which returns a new sorted list while leaving the source unaltered. ::"
msgstr ""
"Para iterar sobre una secuencia ordenada, se utiliza la función :func:"
"`sorted` la cual retorna una nueva lista ordenada dejando a la original "
"intacta. ::"
#: ../Doc/tutorial/datastructures.rst:625
msgid ""
"It is sometimes tempting to change a list while you are looping over it; "
"however, it is often simpler and safer to create a new list instead. ::"
msgstr ""
"A veces uno intenta cambiar una lista mientras la está iterando; sin "
"embargo, a menudo es más simple y seguro crear una nueva lista::"
#: ../Doc/tutorial/datastructures.rst:642
msgid "More on Conditions"
msgstr "Más acerca de condiciones"
#: ../Doc/tutorial/datastructures.rst:644
msgid ""
"The conditions used in ``while`` and ``if`` statements can contain any "
"operators, not just comparisons."
msgstr ""
"Las condiciones usadas en las instrucciones ``while`` e ``if`` pueden "
"contener cualquier operador, no sólo comparaciones."
#: ../Doc/tutorial/datastructures.rst:647
msgid ""
"The comparison operators ``in`` and ``not in`` check whether a value occurs "
"(does not occur) in a sequence. The operators ``is`` and ``is not`` compare "
"whether two objects are really the same object; this only matters for "
"mutable objects like lists. All comparison operators have the same "
"priority, which is lower than that of all numerical operators."
msgstr ""
"Los operadores de comparación ``in`` y ``not in`` verifican si un valor está "
"(o no está) en una secuencia. Los operadores ``is`` e ``is not`` comparan si "
"dos objetos son realmente el mismo objeto; esto es significativo sólo para "
"objetos mutables como las listas. Todos los operadores de comparación "
"tienen la misma prioridad, la cual es menor que la de todos los operadores "
"numéricos."
#: ../Doc/tutorial/datastructures.rst:653
msgid ""
"Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` "
"is less than ``b`` and moreover ``b`` equals ``c``."
msgstr ""
"Las comparaciones pueden encadenarse. Por ejemplo, ``a < b == c`` verifica "
"si ``a`` es menor que ``b`` y además si ``b`` es igual a ``c``."
#: ../Doc/tutorial/datastructures.rst:656
msgid ""
"Comparisons may be combined using the Boolean operators ``and`` and ``or``, "
"and the outcome of a comparison (or of any other Boolean expression) may be "
"negated with ``not``. These have lower priorities than comparison "
"operators; between them, ``not`` has the highest priority and ``or`` the "
"lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or "
"C``. As always, parentheses can be used to express the desired composition."
msgstr ""
"Las comparaciones pueden combinarse mediante los operadores booleanos "
"``and`` y ``or``, y el resultado de una comparación (o de cualquier otra "
"expresión booleana) puede negarse con ``not``. Estos tienen prioridades "
"menores que los operadores de comparación; entre ellos ``not`` tiene la "
"mayor prioridad y ``or`` la menor, o sea que ``A and not B or C`` equivale a "
"``(A and (not B)) or C``. Como siempre, los paréntesis pueden usarse para "
"expresar la composición deseada."
#: ../Doc/tutorial/datastructures.rst:663
msgid ""
"The Boolean operators ``and`` and ``or`` are so-called *short-circuit* "
"operators: their arguments are evaluated from left to right, and evaluation "
"stops as soon as the outcome is determined. For example, if ``A`` and ``C`` "
"are true but ``B`` is false, ``A and B and C`` does not evaluate the "
"expression ``C``. When used as a general value and not as a Boolean, the "
"return value of a short-circuit operator is the last evaluated argument."
msgstr ""
"Los operadores booleanos ``and`` y ``or`` son los llamados operadores "
"*cortocircuito*: sus argumentos se evalúan de izquierda a derecha, y la "
"evaluación se detiene en el momento en que se determina su resultado. Por "
"ejemplo, si ``A`` y ``C`` son verdaderas pero ``B`` es falsa, en ``A and B "
"and C`` no se evalúa la expresión ``C``. Cuando se usa como un valor "
"general y no como un booleano, el valor retornado de un operador "
"cortocircuito es el último argumento evaluado."
#: ../Doc/tutorial/datastructures.rst:670
msgid ""
"It is possible to assign the result of a comparison or other Boolean "
"expression to a variable. For example, ::"
msgstr ""
"Es posible asignar el resultado de una comparación u otra expresión booleana "
"a una variable. Por ejemplo, ::"
#: ../Doc/tutorial/datastructures.rst:678
msgid ""
"Note that in Python, unlike C, assignment inside expressions must be done "
"explicitly with the :ref:`walrus operator ` ``:=``. This avoids a common class of problems encountered "
"in C programs: typing ``=`` in an expression when ``==`` was intended."
msgstr ""
"Nota que en Python, a diferencia de C, asignaciones dentro de expresiones "
"deben realizarse explícitamente con :ref:`walrus operator ` ``:=``. Esto soluciona algunos problemas "
"comunes encontrados en C: escribiendo ``=`` en una expresión cuando se "
"intentaba escribir ``==``."
#: ../Doc/tutorial/datastructures.rst:688
msgid "Comparing Sequences and Other Types"
msgstr "Comparando secuencias y otros tipos"
#: ../Doc/tutorial/datastructures.rst:689
msgid ""
"Sequence objects typically may be compared to other objects with the same "
"sequence type. The comparison uses *lexicographical* ordering: first the "
"first two items are compared, and if they differ this determines the outcome "
"of the comparison; if they are equal, the next two items are compared, and "
"so on, until either sequence is exhausted. If two items to be compared are "
"themselves sequences of the same type, the lexicographical comparison is "
"carried out recursively. If all items of two sequences compare equal, the "
"sequences are considered equal. If one sequence is an initial sub-sequence "
"of the other, the shorter sequence is the smaller (lesser) one. "
"Lexicographical ordering for strings uses the Unicode code point number to "
"order individual characters. Some examples of comparisons between sequences "
"of the same type::"
msgstr ""
"Las secuencias pueden compararse con otros objetos del mismo tipo de "
"secuencia. La comparación usa orden *lexicográfico*: primero se comparan los "
"dos primeros ítems, si son diferentes esto ya determina el resultado de la "
"comparación; si son iguales, se comparan los siguientes dos ítems, y así "
"sucesivamente hasta llegar al final de alguna de las secuencias. Si dos "
"ítems a comparar son ambos secuencias del mismo tipo, la comparación "
"lexicográfica es recursiva. Si todos los ítems de dos secuencias resultan "
"iguales, se considera que las secuencias son iguales. Si una secuencia es la "
"parte inicial de la otra, la secuencia más corta es la más pequeña. El orden "
"lexicográfico de los strings utiliza el punto de código Unicode para ordenar "
"caracteres individuales. Algunos ejemplos de comparación entre secuencias "
"del mismo tipo::"
#: ../Doc/tutorial/datastructures.rst:709
msgid ""
"Note that comparing objects of different types with ``<`` or ``>`` is legal "
"provided that the objects have appropriate comparison methods. For example, "
"mixed numeric types are compared according to their numeric value, so 0 "
"equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, "
"the interpreter will raise a :exc:`TypeError` exception."
msgstr ""
"Observá que comparar objetos de diferentes tipos con ``<`` o ``>`` es legal "
"siempre y cuando los objetas tenga los métodos de comparación apropiados. "
"Por ejemplo, los tipos de números mezclados son comparados de acuerdo a su "
"valor numérico, o sea 0 es igual a 0.0, etc. Si no es el caso, en lugar de "
"proveer un ordenamiento arbitrario, el intérprete generará una excepción :"
"exc:`TypeError`."
#: ../Doc/tutorial/datastructures.rst:717
msgid "Footnotes"
msgstr "Notas al pie"
#: ../Doc/tutorial/datastructures.rst:718
msgid ""
"Other languages may return the mutated object, which allows method chaining, "
"such as ``d->insert(\"a\")->remove(\"b\")->sort();``."
msgstr ""
"Otros lenguajes podrían retornar un objeto mutado, que permite "
"encadenamiento de métodos como ``d->insert(\"a\")->remove(\"b\")->sort();``."
#~ msgid ""
#~ "Note that in Python, unlike C, assignment cannot occur inside "
#~ "expressions. C programmers may grumble about this, but it avoids a common "
#~ "class of problems encountered in C programs: typing ``=`` in an "
#~ "expression when ``==`` was intended."
#~ msgstr ""
#~ "Notá que en Python, a diferencia de C, la asignación no puede ocurrir "
#~ "dentro de expresiones. Los programadores de C pueden renegar por esto, "
#~ "pero es algo que evita un tipo de problema común encontrado en programas "
#~ "en C: escribir ``=`` en una expresión cuando lo que se quiere escribir es "
#~ "``==``."