[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/python/python-docs-ko/3.14/tutorial/datastructures.po [Back]  [Original]

# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2017, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR , 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-11 20:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Editorial (https://python.flowdas.com)\n"
"Language-Team: Korean (https://python.flowdas.com)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"

#: ../../tutorial/datastructures.rst:5
msgid "Data Structures"
msgstr " "

#: ../../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 "         ,     ."

#: ../../tutorial/datastructures.rst:13
msgid "More on Lists"
msgstr "  "

#: ../../tutorial/datastructures.rst:15
msgid ""
"The list data type has some more methods.  Here are all of the methods of"
" list objects:"
msgstr "        .      :"

#: ../../tutorial/datastructures.rst:22
msgid "Add an item to the end of the list.  Similar to ``a[len(a):] = [x]``."
msgstr "   . ``a[len(a):] = [x]``  ."

#: ../../tutorial/datastructures.rst:28
msgid ""
"Extend the list by appending all the items from the iterable.  Similar to"
" ``a[len(a):] = iterable``."
msgstr "      . ``a[len(a):] = iterable``  ."

#: ../../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 ""
"   .        .  ``a.insert(0, x)`` "
"   , ``a.insert(len(a), x)``  ``a.append(x)``  ."

#: ../../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 "  *x*      .    :exc:`ValueError`\\ ."

#: ../../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. It raises an :exc:`IndexError` if the list is empty or the index is"
" outside the list range."
msgstr ""
"     ,   .   , ``a.pop()``  "
"    .        :exc:`IndexError`\\ "
"."

#: ../../tutorial/datastructures.rst:59
msgid "Remove all items from the list.  Similar to ``del a[:]``."
msgstr "   . ``del a[:]``  ."

#: ../../tutorial/datastructures.rst:65
#, fuzzy
msgid ""
"Return zero-based index of the first occurrence of *x* in the list. "
"Raises a :exc:`ValueError` if there is no such item."
msgstr ""
"     *x*      0   .    "
":exc:`ValueError`  ."

#: ../../tutorial/datastructures.rst:68
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 ""
"  *start*  *end*    ,        "
".   *start*       ."

#: ../../tutorial/datastructures.rst:77
msgid "Return the number of times *x* appears in the list."
msgstr " *x*    ."

#: ../../tutorial/datastructures.rst:83
msgid ""
"Sort the items of the list in place (the arguments can be used for sort "
"customization, see :func:`sorted` for their explanation)."
msgstr ""
"    (     .  :func:`sorted` "
" )."

#: ../../tutorial/datastructures.rst:90
msgid "Reverse the elements of the list in place."
msgstr "   ."

#: ../../tutorial/datastructures.rst:96
msgid "Return a shallow copy of the list.  Similar to ``a[:]``."
msgstr "   . ``a[:]``  ."

#: ../../tutorial/datastructures.rst:99
msgid "An example that uses most of the list methods::"
msgstr "    ::"

#: ../../tutorial/datastructures.rst:101
msgid ""
">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', "
"'banana']\n"
">>> fruits.count('apple')\n"
"2\n"
">>> fruits.count('tangerine')\n"
"0\n"
">>> fruits.index('banana')\n"
"3\n"
">>> fruits.index('banana', 4)  # Find next banana starting at position 4\n"
"6\n"
">>> fruits.reverse()\n"
">>> fruits\n"
"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n"
">>> fruits.append('grape')\n"
">>> fruits\n"
"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']"
"\n"
">>> fruits.sort()\n"
">>> fruits\n"
"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']"
"\n"
">>> fruits.pop()\n"
"'pear'"
msgstr ""
">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', "
"'banana']\n"
">>> fruits.count('apple')\n"
"2\n"
">>> fruits.count('tangerine')\n"
"0\n"
">>> fruits.index('banana')\n"
"3\n"
">>> fruits.index('banana', 4)  #  4  banana  \n"
"6\n"
">>> fruits.reverse()\n"
">>> fruits\n"
"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n"
">>> fruits.append('grape')\n"
">>> fruits\n"
"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']"
"\n"
">>> fruits.sort()\n"
">>> fruits\n"
"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']"
"\n"
">>> fruits.pop()\n"
"'pear'"

#: ../../tutorial/datastructures.rst:122
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``. [#]_  This is a design principle for all "
"mutable data structures in Python."
msgstr ""
"  ``insert``, ``remove``, ``sort``         "
"    --  ``None``   . [#]_       "
"  ."

#: ../../tutorial/datastructures.rst:127
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 ""
"            .  ,   "
"   ``None``\\       ``[None, 'hello', 10]``\\  "
".       .  , ``3+4j < 5+7j``\\   ."

#: ../../tutorial/datastructures.rst:138
msgid "Using Lists as Stacks"
msgstr "  "

#: ../../tutorial/datastructures.rst:143
#, fuzzy
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:`~list.append`.  To retrieve an item from the top of the stack, use"
" :meth:`~list.pop` without an explicit index.  For example::"
msgstr ""
"      ,       (\"last-in,"
" first-out\").     :meth:`!append`  .    "
"    :meth:`!pop`  .  ::"

#: ../../tutorial/datastructures.rst:148
msgid ""
">>> stack = [3, 4, 5]\n"
">>> stack.append(6)\n"
">>> stack.append(7)\n"
">>> stack\n"
"[3, 4, 5, 6, 7]\n"
">>> stack.pop()\n"
"7\n"
">>> stack\n"
"[3, 4, 5, 6]\n"
">>> stack.pop()\n"
"6\n"
">>> stack.pop()\n"
"5\n"
">>> stack\n"
"[3, 4]"
msgstr ""
">>> stack = [3, 4, 5]\n"
">>> stack.append(6)\n"
">>> stack.append(7)\n"
">>> stack\n"
"[3, 4, 5, 6, 7]\n"
">>> stack.pop()\n"
"7\n"
">>> stack\n"
"[3, 4, 5, 6]\n"
">>> stack.pop()\n"
"6\n"
">>> stack.pop()\n"
"5\n"
">>> stack\n"
"[3, 4]"

#: ../../tutorial/datastructures.rst:168
msgid "Using Lists as Queues"
msgstr "  "

#: ../../tutorial/datastructures.rst:172
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 ""
"    ,       (\"first-in, first-"
"out\"); ,     .   ,    , "
"       (       )."

#: ../../tutorial/datastructures.rst:178
msgid ""
"To implement a queue, use :class:`collections.deque` which was designed "
"to have fast appends and pops from both ends.  For example::"
msgstr ""
" ,        :class:`collections.deque`  "
".  ::"

#: ../../tutorial/datastructures.rst:181
msgid ""
">>> from collections import deque\n"
">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n"
">>> queue.append(\"Terry\")           # Terry arrives\n"
">>> queue.append(\"Graham\")          # Graham arrives\n"
">>> queue.popleft()                 # The first to arrive now leaves\n"
"'Eric'\n"
">>> queue.popleft()                 # The second to arrive now leaves\n"
"'John'\n"
">>> queue                           # Remaining queue in order of arrival"
"\n"
"deque(['Michael', 'Terry', 'Graham'])"
msgstr ""
">>> from collections import deque\n"
">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n"
">>> queue.append(\"Terry\")           # Terry \n"
">>> queue.append(\"Graham\")          # Graham \n"
">>> queue.popleft()                 #     \n"
"'Eric'\n"
">>> queue.popleft()                 #     \n"
"'John'\n"
">>> queue                           #    \n"
"deque(['Michael', 'Terry', 'Graham'])"

#: ../../tutorial/datastructures.rst:196
msgid "List Comprehensions"
msgstr " "

#: ../../tutorial/datastructures.rst:198
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 ""
"      .  ,        "
"    ,         ."

#: ../../tutorial/datastructures.rst:203
msgid "For example, assume we want to create a list of squares, like::"
msgstr " ,     ,  ::"

#: ../../tutorial/datastructures.rst:205
msgid ""
">>> squares = []\n"
">>> for x in range(10):\n"
"...     squares.append(x**2)\n"
"...\n"
">>> squares\n"
"[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]"
msgstr ""
">>> squares = []\n"
">>> for x in range(10):\n"
"...     squares.append(x**2)\n"
"...\n"
">>> squares\n"
"[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]"

#: ../../tutorial/datastructures.rst:212
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 ""
" ``x``     ( )       .  "
" ,       ::"

#: ../../tutorial/datastructures.rst:216
msgid "squares = list(map(lambda x: x**2, range(10)))"
msgstr "squares = list(map(lambda x: x**2, range(10)))"

#: ../../tutorial/datastructures.rst:218
msgid "or, equivalently::"
msgstr ",    ::"

#: ../../tutorial/datastructures.rst:220
msgid "squares = [x**2 for x in range(10)]"
msgstr "squares = [x**2 for x in range(10)]"

#: ../../tutorial/datastructures.rst:222
msgid "which is more concise and readable."
msgstr "    ."

#: ../../tutorial/datastructures.rst:224
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 ""
"      :keyword:`!for`     :keyword:`!for`  "
":keyword:`!if`    .    , :keyword:`!for`  "
":keyword:`!if`      .  ,      "
"     ::"

#: ../../tutorial/datastructures.rst:231
msgid ""
">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n"
"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]"
msgstr ""
">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n"
"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]"

#: ../../tutorial/datastructures.rst:234
msgid "and it's equivalent to::"
msgstr ",   ::"

#: ../../tutorial/datastructures.rst:236
msgid ""
">>> combs = []\n"
">>> for x in [1,2,3]:\n"
"...     for y in [3,1,4]:\n"
"...         if x != y:\n"
"...             combs.append((x, y))\n"
"...\n"
">>> combs\n"
"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]"
msgstr ""
">>> combs = []\n"
">>> for x in [1,2,3]:\n"
"...     for y in [3,1,4]:\n"
"...         if x != y:\n"
"...             combs.append((x, y))\n"
"...\n"
">>> combs\n"
"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]"

#: ../../tutorial/datastructures.rst:245
msgid ""
"Note how the order of the :keyword:`for` and :keyword:`if` statements is "
"the same in both these snippets."
msgstr "   :keyword:`for`  :keyword:`if`    ."

#: ../../tutorial/datastructures.rst:248
msgid ""
"If the expression is a tuple (e.g. the ``(x, y)`` in the previous "
"example), it must be parenthesized. ::"
msgstr "  (   ``(x, y)``),    . ::"

#: ../../tutorial/datastructures.rst:251
msgid ""
">>> vec = [-4, -2, 0, 2, 4]\n"
">>> # create a new list with the values doubled\n"
">>> [x*2 for x in vec]\n"
"[-8, -4, 0, 4, 8]\n"
">>> # filter the list to exclude negative numbers\n"
">>> [x for x in vec if x >= 0]\n"
"[0, 2, 4]\n"
">>> # apply a function to all the elements\n"
">>> [abs(x) for x in vec]\n"
"[4, 2, 0, 2, 4]\n"
">>> # call a method on each element\n"
">>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']\n"
">>> [weapon.strip() for weapon in freshfruit]\n"
"['banana', 'loganberry', 'passion fruit']\n"
">>> # create a list of 2-tuples like (number, square)\n"
">>> [(x, x**2) for x in range(6)]\n"
"[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]\n"
">>> # the tuple must be parenthesized, otherwise an error is raised\n"
">>> [x, x**2 for x in range(6)]\n"
"  File \"\", line 1\n"
"    [x, x**2 for x in range(6)]\n"
"     ^^^^^^^\n"
"SyntaxError: did you forget parentheses around the comprehension target?\n"
">>> # flatten a list using a listcomp with two 'for'\n"
">>> vec = [[1,2,3], [4,5,6], [7,8,9]]\n"
">>> [num for elem in vec for num in elem]\n"
"[1, 2, 3, 4, 5, 6, 7, 8, 9]"
msgstr ""
">>> vec = [-4, -2, 0, 2, 4]\n"
">>> #      \n"
">>> [x*2 for x in vec]\n"
"[-8, -4, 0, 4, 8]\n"
">>> #    \n"
">>> [x for x in vec if x >= 0]\n"
"[0, 2, 4]\n"
">>> #    \n"
">>> [abs(x) for x in vec]\n"
"[4, 2, 0, 2, 4]\n"
">>> #    \n"
">>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']\n"
">>> [weapon.strip() for weapon in freshfruit]\n"
"['banana', 'loganberry', 'passion fruit']\n"
">>> # (, )   2-  \n"
">>> [(x, x**2) for x in range(6)]\n"
"[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]\n"
">>> #   ,    \n"
">>> [x, x**2 for x in range(6)]\n"
"  File \"\", line 1\n"
"    [x, x**2 for x in range(6)]\n"
"     ^^^^^^^\n"
"SyntaxError: did you forget parentheses around the comprehension target?\n"
">>> #   'for'       \n"
">>> vec = [[1,2,3], [4,5,6], [7,8,9]]\n"
">>> [num for elem in vec for num in elem]\n"
"[1, 2, 3, 4, 5, 6, 7, 8, 9]"

#: ../../tutorial/datastructures.rst:279
msgid "List comprehensions can contain complex expressions and nested functions::"
msgstr "        ::"

#: ../../tutorial/datastructures.rst:281
msgid ""
">>> from math import pi\n"
">>> [str(round(pi, i)) for i in range(1, 6)]\n"
"['3.1', '3.14', '3.142', '3.1416', '3.14159']"
msgstr ""
">>> from math import pi\n"
">>> [str(round(pi, i)) for i in range(1, 6)]\n"
"['3.1', '3.14', '3.142', '3.1416', '3.14159']"

#: ../../tutorial/datastructures.rst:286
msgid "Nested List Comprehensions"
msgstr "  "

#: ../../tutorial/datastructures.rst:288
msgid ""
"The initial expression in a list comprehension can be any arbitrary "
"expression, including another list comprehension."
msgstr "        ,    ."

#: ../../tutorial/datastructures.rst:291
msgid ""
"Consider the following example of a 3x4 matrix implemented as a list of 3"
" lists of length 4::"
msgstr "   4  3   3x4   ::"

#: ../../tutorial/datastructures.rst:294
msgid ""
">>> matrix = [\n"
"...     [1, 2, 3, 4],\n"
"...     [5, 6, 7, 8],\n"
"...     [9, 10, 11, 12],\n"
"... ]"
msgstr ""
">>> matrix = [\n"
"...     [1, 2, 3, 4],\n"
"...     [5, 6, 7, 8],\n"
"...     [9, 10, 11, 12],\n"
"... ]"

#: ../../tutorial/datastructures.rst:300
msgid "The following list comprehension will transpose rows and columns::"
msgstr "      ::"

#: ../../tutorial/datastructures.rst:302
msgid ""
">>> [[row[i] for row in matrix] for i in range(4)]\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"
msgstr ""
">>> [[row[i] for row in matrix] for i in range(4)]\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"

#: ../../tutorial/datastructures.rst:305
msgid ""
"As we saw in the previous section, the inner list comprehension is "
"evaluated in the context of the :keyword:`for` that follows it, so this "
"example is equivalent to::"
msgstr ""
" ,     :keyword:`for`    .    "
" ::"

#: ../../tutorial/datastructures.rst:309
msgid ""
">>> transposed = []\n"
">>> for i in range(4):\n"
"...     transposed.append([row[i] for row in matrix])\n"
"...\n"
">>> transposed\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"
msgstr ""
">>> transposed = []\n"
">>> for i in range(4):\n"
"...     transposed.append([row[i] for row in matrix])\n"
"...\n"
">>> transposed\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"

#: ../../tutorial/datastructures.rst:316
msgid "which, in turn, is the same as::"
msgstr "   ::"

#: ../../tutorial/datastructures.rst:318
msgid ""
">>> transposed = []\n"
">>> for i in range(4):\n"
"...     # the following 3 lines implement the nested listcomp\n"
"...     transposed_row = []\n"
"...     for row in matrix:\n"
"...         transposed_row.append(row[i])\n"
"...     transposed.append(transposed_row)\n"
"...\n"
">>> transposed\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"
msgstr ""
">>> transposed = []\n"
">>> for i in range(4):\n"
"...     #  3    \n"
"...     transposed_row = []\n"
"...     for row in matrix:\n"
"...         transposed_row.append(row[i])\n"
"...     transposed.append(transposed_row)\n"
"...\n"
">>> transposed\n"
"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]"

#: ../../tutorial/datastructures.rst:329
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 ""
" ,      .   :func:`zip`      "
"::"

#: ../../tutorial/datastructures.rst:332
msgid ""
">>> list(zip(*matrix))\n"
"[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]"
msgstr ""
">>> list(zip(*matrix))\n"
"[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]"

#: ../../tutorial/datastructures.rst:335
msgid ""
"See :ref:`tut-unpacking-arguments` for details on the asterisk in this "
"line."
msgstr "       :ref:`tut-unpacking-arguments`  ."

#: ../../tutorial/datastructures.rst:340
msgid "The :keyword:`!del` statement"
msgstr ":keyword:`!del` "

#: ../../tutorial/datastructures.rst:342
#, fuzzy
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:`~list.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 ""
"        : :keyword:`del` .   "
" :meth:`!pop`  . :keyword:`!del`       "
"     (      ).  ::"

#: ../../tutorial/datastructures.rst:348
msgid ""
">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n"
">>> del a[0]\n"
">>> a\n"
"[1, 66.25, 333, 333, 1234.5]\n"
">>> del a[2:4]\n"
">>> a\n"
"[1, 66.25, 1234.5]\n"
">>> del a[:]\n"
">>> a\n"
"[]"
msgstr ""
">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n"
">>> del a[0]\n"
">>> a\n"
"[1, 66.25, 333, 333, 1234.5]\n"
">>> del a[2:4]\n"
">>> a\n"
"[1, 66.25, 1234.5]\n"
">>> del a[:]\n"
">>> a\n"
"[]"

#: ../../tutorial/datastructures.rst:359
msgid ":keyword:`del` can also be used to delete entire variables::"
msgstr ":keyword:`del`       ::"

#: ../../tutorial/datastructures.rst:361
msgid ">>> del a"
msgstr ">>> del a"

#: ../../tutorial/datastructures.rst:363
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 ""
"  ``a``     (     ).  :keyword:`del` "
"    ."

#: ../../tutorial/datastructures.rst:370
msgid "Tuples and Sequences"
msgstr " "

#: ../../tutorial/datastructures.rst:372
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 ""
"         .  **      "
"(:ref:`typesseq`  ).    ,      .  "
"    : ** ."

#: ../../tutorial/datastructures.rst:378
msgid "A tuple consists of a number of values separated by commas, for instance::"
msgstr "     .  ::"

#: ../../tutorial/datastructures.rst:380
msgid ""
">>> t = 12345, 54321, 'hello!'\n"
">>> t[0]\n"
"12345\n"
">>> t\n"
"(12345, 54321, 'hello!')\n"
">>> # Tuples may be nested:\n"
">>> u = t, (1, 2, 3, 4, 5)\n"
">>> u\n"
"((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))\n"
">>> # Tuples are immutable:\n"
">>> t[0] = 88888\n"
"Traceback (most recent call last):\n"
"  File \"\", line 1, in \n"
"TypeError: 'tuple' object does not support item assignment\n"
">>> # but they can contain mutable objects:\n"
">>> v = ([1, 2, 3], [3, 2, 1])\n"
">>> v\n"
"([1, 2, 3], [3, 2, 1])"
msgstr ""
">>> t = 12345, 54321, 'hello!'\n"
">>> t[0]\n"
"12345\n"
">>> t\n"
"(12345, 54321, 'hello!')\n"
">>> #    :\n"
">>> u = t, (1, 2, 3, 4, 5)\n"
">>> u\n"
"((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))\n"
">>> #  :\n"
">>> t[0] = 88888\n"
"Traceback (most recent call last):\n"
"  File \"\", line 1, in \n"
"TypeError: 'tuple' object does not support item assignment\n"
">>> #      :\n"
">>> v = ([1, 2, 3], [3, 2, 1])\n"
">>> v\n"
"([1, 2, 3], [3, 2, 1])"

#: ../../tutorial/datastructures.rst:400
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 ""
" ,     ,     ;    "
" (     ),        .     "
"  ,         ."

#: ../../tutorial/datastructures.rst:407
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 ""
"   ,      .  :term:` "
"` ,     .    (   )  "
" ( :func:`  `   )  . "
" :term:` ` ,         ."

#: ../../tutorial/datastructures.rst:415
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 ""
"        :          "
".      ;          (  "
"     ). ,  .  ::"

#: ../../tutorial/datastructures.rst:421
msgid ""
">>> empty = ()\n"
">>> singleton = 'hello',    # >> len(empty)\n"
"0\n"
">>> len(singleton)\n"
"1\n"
">>> singleton\n"
"('hello',)"
msgstr ""
">>> empty = ()\n"
">>> singleton = 'hello',    # >> len(empty)\n"
"0\n"
">>> len(singleton)\n"
"1\n"
">>> singleton\n"
"('hello',)"

#: ../../tutorial/datastructures.rst:430
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 ""
" ``t = 12345, 54321, 'hello!'``  * *  :  ``12345``, "
"``54321``, ``'hello!'``     .    ::"

#: ../../tutorial/datastructures.rst:434
msgid ">>> x, y, z = t"
msgstr ">>> x, y, z = t"

#: ../../tutorial/datastructures.rst:436
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 ""
",  , *  *       .     "
"         .          "
" ."

#: ../../tutorial/datastructures.rst:446
msgid "Sets"
msgstr ""

#: ../../tutorial/datastructures.rst:448
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 ""
" **     .       .    "
"   .   , , ,      ."

#: ../../tutorial/datastructures.rst:453
#, python-brace-format
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 ""
"    :func:`set`    . :    ``set()``  "
" . ``{}``  ;    ,   ."

#: ../../tutorial/datastructures.rst:457
msgid "Here is a brief demonstration::"
msgstr "   ::"

#: ../../tutorial/datastructures.rst:459
#, python-brace-format
msgid ""
">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n"
">>> print(basket)                      # show that duplicates have been "
"removed\n"
"{'orange', 'banana', 'pear', 'apple'}\n"
">>> 'orange' in basket                 # fast membership testing\n"
"True\n"
">>> 'crabgrass' in basket\n"
"False\n"
"\n"
">>> # Demonstrate set operations on unique letters from two words\n"
">>>\n"
">>> a = set('abracadabra')\n"
">>> b = set('alacazam')\n"
">>> a                                  # unique letters in a\n"
"{'a', 'r', 'b', 'c', 'd'}\n"
">>> a - b                              # letters in a but not in b\n"
"{'r', 'd', 'b'}\n"
">>> a | b                              # letters in a or b or both\n"
"{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}\n"
">>> a & b                              # letters in both a and b\n"
"{'a', 'c'}\n"
">>> a ^ b                              # letters in a or b but not both\n"
"{'r', 'd', 'b', 'm', 'z', 'l'}"
msgstr ""
">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n"
">>> print(basket)                      #   \n"
"{'orange', 'banana', 'pear', 'apple'}\n"
">>> 'orange' in basket                 #   \n"
"True\n"
">>> 'crabgrass' in basket\n"
"False\n"
"\n"
">>> #       \n"
">>>\n"
">>> a = set('abracadabra')\n"
">>> b = set('alacazam')\n"
">>> a                                  # a   \n"
"{'a', 'r', 'b', 'c', 'd'}\n"
">>> a - b                              # a   b   \n"
"{'r', 'd', 'b'}\n"
">>> a | b                              # a  b,     \n"
"{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}\n"
">>> a & b                              # a  b   \n"
"{'a', 'c'}\n"
">>> a ^ b                              # a  b       \n"
"{'r', 'd', 'b', 'm', 'z', 'l'}"

#: ../../tutorial/datastructures.rst:482
msgid ""
"Similarly to :ref:`list comprehensions `, set "
"comprehensions are also supported::"
msgstr ":ref:`  `  ,   ::"

#: ../../tutorial/datastructures.rst:485
#, python-brace-format
msgid ""
">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n"
">>> a\n"
"{'r', 'd'}"
msgstr ""
">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n"
">>> a\n"
"{'r', 'd'}"

#: ../../tutorial/datastructures.rst:493
msgid "Dictionaries"
msgstr ""

#: ../../tutorial/datastructures.rst:495
#, fuzzy
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:`~list.append` and "
":meth:`~list.extend`."
msgstr ""
"       **  (:ref:`typesmapping`  ).  "
"   \" (associative memories)\"  \" (associative "
"arrays)\"   .    ,  **  ,   "
"  ;       .  , ,  ,    "
";      ,    .     , "
"  ,  , :meth:`!append`  :meth:`!extend`       "
"."

#: ../../tutorial/datastructures.rst:506
#, python-brace-format
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 ""
" (  )       *: *     . "
"    : ``{}``.     :   ,   :"
"  ;     ."

#: ../../tutorial/datastructures.rst:512
#, fuzzy
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."
msgstr ""
"           . ``del``  :    "
".     ,      .       "
"."

#: ../../tutorial/datastructures.rst:517
msgid ""
"Extracting a value for a non-existent key by subscripting (``d[key]``) "
"raises a :exc:`KeyError`. To avoid getting this error when trying to "
"access a possibly non-existent key, use the :meth:`~dict.get` method "
"instead, which returns ``None`` (or a specified default value) if the key"
" is not in the dictionary."
msgstr ""

#: ../../tutorial/datastructures.rst:522
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 ""
" ``list(d)``            ( "
"  ``sorted(d)``   ).     , :keyword:`in` "
" ."

#: ../../tutorial/datastructures.rst:527
msgid "Here is a small example using a dictionary::"
msgstr "     ::"

#: ../../tutorial/datastructures.rst:529
#, python-brace-format
msgid ""
">>> tel = {'jack': 4098, 'sape': 4139}\n"
">>> tel['guido'] = 4127\n"
">>> tel\n"
"{'jack': 4098, 'sape': 4139, 'guido': 4127}\n"
">>> tel['jack']\n"
"4098\n"
">>> tel['irv']\n"
"Traceback (most recent call last):\n"
"  File \"\", line 1, in \n"
"KeyError: 'irv'\n"
">>> print(tel.get('irv'))\n"
"None\n"
">>> del tel['sape']\n"
">>> tel['irv'] = 4127\n"
">>> tel\n"
"{'jack': 4098, 'guido': 4127, 'irv': 4127}\n"
">>> list(tel)\n"
"['jack', 'guido', 'irv']\n"
">>> sorted(tel)\n"
"['guido', 'irv', 'jack']\n"
">>> 'guido' in tel\n"
"True\n"
">>> 'jack' not in tel\n"
"False"
msgstr ""
">>> tel = {'jack': 4098, 'sape': 4139}\n"
">>> tel['guido'] = 4127\n"
">>> tel\n"
"{'jack': 4098, 'sape': 4139, 'guido': 4127}\n"
">>> tel['jack']\n"
"4098\n"
">>> tel['irv']\n"
"Traceback (most recent call last):\n"
"  File \"\", line 1, in \n"
"KeyError: 'irv'\n"
">>> print(tel.get('irv'))\n"
"None\n"
">>> del tel['sape']\n"
">>> tel['irv'] = 4127\n"
">>> tel\n"
"{'jack': 4098, 'guido': 4127, 'irv': 4127}\n"
">>> list(tel)\n"
"['jack', 'guido', 'irv']\n"
">>> sorted(tel)\n"
"['guido', 'irv', 'jack']\n"
">>> 'guido' in tel\n"
"True\n"
">>> 'jack' not in tel\n"
"False"

#: ../../tutorial/datastructures.rst:554
msgid ""
"The :func:`dict` constructor builds dictionaries directly from sequences "
"of key-value pairs::"
msgstr ":func:`dict`  -      ."

#: ../../tutorial/datastructures.rst:557
#, python-brace-format
msgid ""
">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n"
"{'sape': 4139, 'guido': 4127, 'jack': 4098}"
msgstr ""
">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n"
"{'sape': 4139, 'guido': 4127, 'jack': 4098}"

#: ../../tutorial/datastructures.rst:560
msgid ""
"In addition, dict comprehensions can be used to create dictionaries from "
"arbitrary key and value expressions::"
msgstr " ,            ::"

#: ../../tutorial/datastructures.rst:563
#, python-brace-format
msgid ""
">>> {x: x**2 for x in (2, 4, 6)}\n"
"{2: 4, 4: 16, 6: 36}"
msgstr ""
">>> {x: x**2 for x in (2, 4, 6)}\n"
"{2: 4, 4: 16, 6: 36}"

#: ../../tutorial/datastructures.rst:566
msgid ""
"When the keys are simple strings, it is sometimes easier to specify pairs"
" using keyword arguments::"
msgstr "   ,       ::"

#: ../../tutorial/datastructures.rst:569
#, python-brace-format
msgid ""
">>> dict(sape=4139, guido=4127, jack=4098)\n"
"{'sape': 4139, 'guido': 4127, 'jack': 4098}"
msgstr ""
">>> dict(sape=4139, guido=4127, jack=4098)\n"
"{'sape': 4139, 'guido': 4127, 'jack': 4098}"

#: ../../tutorial/datastructures.rst:576
msgid "Looping Techniques"
msgstr " "

#: ../../tutorial/datastructures.rst:578
msgid ""
"When looping through dictionaries, the key and corresponding value can be"
" retrieved at the same time using the :meth:`~dict.items` method. ::"
msgstr ""
"  , :meth:`~dict.items`          . "
"::"

#: ../../tutorial/datastructures.rst:581
#, python-brace-format
msgid ""
">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n"
">>> for k, v in knights.items():\n"
"...     print(k, v)\n"
"...\n"
"gallahad the pure\n"
"robin the brave"
msgstr ""
">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n"
">>> for k, v in knights.items():\n"
"...     print(k, v)\n"
"...\n"
"gallahad the pure\n"
"robin the brave"

#: ../../tutorial/datastructures.rst:588
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 "  , :func:`enumerate`          . ::"

#: ../../tutorial/datastructures.rst:591
msgid ""
">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n"
"...     print(i, v)\n"
"...\n"
"0 tic\n"
"1 tac\n"
"2 toe"
msgstr ""
">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n"
"...     print(i, v)\n"
"...\n"
"0 tic\n"
"1 tac\n"
"2 toe"

#: ../../tutorial/datastructures.rst:598
msgid ""
"To loop over two or more sequences at the same time, the entries can be "
"paired with the :func:`zip` function. ::"
msgstr "     , :func:`zip`      . ::"

#: ../../tutorial/datastructures.rst:601
#, python-brace-format
msgid ""
">>> questions = ['name', 'quest', 'favorite color']\n"
">>> answers = ['lancelot', 'the holy grail', 'blue']\n"
">>> for q, a in zip(questions, answers):\n"
"...     print('What is your {0}?  It is {1}.'.format(q, a))\n"
"...\n"
"What is your name?  It is lancelot.\n"
"What is your quest?  It is the holy grail.\n"
"What is your favorite color?  It is blue."
msgstr ""
">>> questions = ['name', 'quest', 'favorite color']\n"
">>> answers = ['lancelot', 'the holy grail', 'blue']\n"
">>> for q, a in zip(questions, answers):\n"
"...     print('What is your {0}?  It is {1}.'.format(q, a))\n"
"...\n"
"What is your name?  It is lancelot.\n"
"What is your quest?  It is the holy grail.\n"
"What is your favorite color?  It is blue."

#: ../../tutorial/datastructures.rst:610
msgid ""
"To loop over a sequence in reverse, first specify the sequence in a "
"forward direction and then call the :func:`reversed` function. ::"
msgstr "  ,      :func:`reversed`  . ::"

#: ../../tutorial/datastructures.rst:613
msgid ""
">>> for i in reversed(range(1, 10, 2)):\n"
"...     print(i)\n"
"...\n"
"9\n"
"7\n"
"5\n"
"3\n"
"1"
msgstr ""
">>> for i in reversed(range(1, 10, 2)):\n"
"...     print(i)\n"
"...\n"
"9\n"
"7\n"
"5\n"
"3\n"
"1"

#: ../../tutorial/datastructures.rst:622
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 ""
"   , :func:`sorted`           "
". ::"

#: ../../tutorial/datastructures.rst:625
msgid ""
">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n"
">>> for i in sorted(basket):\n"
"...     print(i)\n"
"...\n"
"apple\n"
"apple\n"
"banana\n"
"orange\n"
"orange\n"
"pear"
msgstr ""
">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n"
">>> for i in sorted(basket):\n"
"...     print(i)\n"
"...\n"
"apple\n"
"apple\n"
"banana\n"
"orange\n"
"orange\n"
"pear"

#: ../../tutorial/datastructures.rst:636
msgid ""
"Using :func:`set` on a sequence eliminates duplicate elements. The use of"
" :func:`sorted` in combination with :func:`set` over a sequence is an "
"idiomatic way to loop over unique elements of the sequence in sorted "
"order. ::"
msgstr ""
"  :func:`set`\\    .   :func:`set`\\ "
":func:`sorted`\\            . ::"

#: ../../tutorial/datastructures.rst:640
msgid ""
">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n"
">>> for f in sorted(set(basket)):\n"
"...     print(f)\n"
"...\n"
"apple\n"
"banana\n"
"orange\n"
"pear"
msgstr ""
">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n"
">>> for f in sorted(set(basket)):\n"
"...     print(f)\n"
"...\n"
"apple\n"
"banana\n"
"orange\n"
"pear"

#: ../../tutorial/datastructures.rst:649
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 ""
"       ; , ,         "
". ::"

#: ../../tutorial/datastructures.rst:652
msgid ""
">>> import math\n"
">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]"
"\n"
">>> filtered_data = []\n"
">>> for value in raw_data:\n"
"...     if not math.isnan(value):\n"
"...         filtered_data.append(value)\n"
"...\n"
">>> filtered_data\n"
"[56.2, 51.7, 55.3, 52.5, 47.8]"
msgstr ""
">>> import math\n"
">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]"
"\n"
">>> filtered_data = []\n"
">>> for value in raw_data:\n"
"...     if not math.isnan(value):\n"
"...         filtered_data.append(value)\n"
"...\n"
">>> filtered_data\n"
"[56.2, 51.7, 55.3, 52.5, 47.8]"

#: ../../tutorial/datastructures.rst:666
msgid "More on Conditions"
msgstr "  "

#: ../../tutorial/datastructures.rst:668
msgid ""
"The conditions used in ``while`` and ``if`` statements can contain any "
"operators, not just comparisons."
msgstr "``while``  ``if``          ."

#: ../../tutorial/datastructures.rst:672
msgid ""
"The comparison operators ``in`` and ``not in`` are membership tests that "
"determine whether a value is in (or not in) a container.  The operators "
"``is`` and ``is not`` compare whether two objects are really the same "
"object.  All comparison operators have the same priority, which is lower "
"than that of all numerical operators."
msgstr ""
"  ``in``  ``not in``     ()   .  "
"``is``  ``is not``       .      , "
"   ."

#: ../../tutorial/datastructures.rst:678
msgid ""
"Comparisons can be chained.  For example, ``a < b == c`` tests whether "
"``a`` is less than ``b`` and moreover ``b`` equals ``c``."
msgstr ""
"   .  , ``a < b == c`` , ``a``  ``b``  ,  ``b`` "
" ``c``   ."

#: ../../tutorial/datastructures.rst:681
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 ""
"   ``and``  ``or``     ,   (     )"
" ``not``    .      .   ``not``   "
"  , ``or``   .  ``A and not B or C``  ``(A and (not "
"B)) or C``  .  ,        ."

#: ../../tutorial/datastructures.rst:688
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 ""
"  ``and``  ``or``   *-(short-circuit)* :   "
"  ,     .  , ``A``  ``C``   ``B`` "
" , ``A and B and C``   ``C``    .      "
", -       ."

#: ../../tutorial/datastructures.rst:695
msgid ""
"It is possible to assign the result of a comparison or other Boolean "
"expression to a variable.  For example, ::"
msgstr "         .  , ::"

#: ../../tutorial/datastructures.rst:698
msgid ""
">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n"
">>> non_null = string1 or string2 or string3\n"
">>> non_null\n"
"'Trondheim'"
msgstr ""
">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n"
">>> non_null = string1 or string2 or string3\n"
">>> non_null\n"
"'Trondheim'"

#: ../../tutorial/datastructures.rst:703
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 ""
", C ,    :ref:`  ` ``:=``\\    . C   "
"    : ``==``    ``=``   ."

#: ../../tutorial/datastructures.rst:713
msgid "Comparing Sequences and Other Types"
msgstr "   "

#: ../../tutorial/datastructures.rst:714
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 ""
"          .  **  :    "
"      ; ,    ,       "
" .        ,    .     "
" ,    .        ,    "
".            .     "
"    ::"

#: ../../tutorial/datastructures.rst:726
msgid ""
"(1, 2, 3)              < (1, 2, 4)\n"
"[1, 2, 3]              < [1, 2, 4]\n"
"'ABC' < 'C' < 'Pascal' < 'Python'\n"
"(1, 2, 3, 4)           < (1, 2, 4)\n"
"(1, 2)                 < (1, 2, -1)\n"
"(1, 2, 3)             == (1.0, 2.0, 3.0)\n"
"(1, 2, ('aa', 'ab'))   < (1, 2, ('abc', 'a'), 4)"
msgstr ""
"(1, 2, 3)              < (1, 2, 4)\n"
"[1, 2, 3]              < [1, 2, 4]\n"
"'ABC' < 'C' < 'Pascal' < 'Python'\n"
"(1, 2, 3, 4)           < (1, 2, 4)\n"
"(1, 2)                 < (1, 2, -1)\n"
"(1, 2, 3)             == (1.0, 2.0, 3.0)\n"
"(1, 2, ('aa', 'ab'))   < (1, 2, ('abc', 'a'), 4)"

#: ../../tutorial/datastructures.rst:734
msgid ""
"Note that comparing objects of different types with ```` 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 ""
"    ````   ,         "
"  .  ,         .  0 0.0 , . "
" ,    ,  :exc:`TypeError`  ."

#: ../../tutorial/datastructures.rst:742
msgid "Footnotes"
msgstr ""

#: ../../tutorial/datastructures.rst:743
msgid ""
"Other languages may return the mutated object, which allows method "
"chaining, such as ``d->insert(\"a\")->remove(\"b\")->sort();``."
msgstr ""
"     , ``d->insert(\"a\")->remove(\"b\")->sort();`` "
"    ."


Web Proxy Viewer  |  New URL  |  Original Page