# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2024, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.12\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-26 22:26+0200\n"
"PO-Revision-Date: 2024-09-18 17:32+0300\n"
"Last-Translator: Panagiotis Skias \n"
"Language-Team: PyGreece \n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\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 ""
"Επεκτείνει τη λίστα προσθέτοντας όλα τα στοιχεία από το iterable. Παρόμοιο "
"με ``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 ""
"Εισάγει ένα στοιχείο σε μια δεδομένη θέση. Το πρώτο όρισμα είναι το index "
"του στοιχείου πριν από το οποίο θα εισαχθεί, επομένως ``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*. "
"Κάνει raise ένα :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()`` αφαιρεί και επιστρέφει το "
"τελευταίο στοιχείο στη λίστα. Κάνει raise ένα :exc:`IndexError` εάν η λίστα "
"είναι κενή ή το ευρετήριο βρίσκεται εκτός του εύρους της λίστας."
#: tutorial/datastructures.rst:59
msgid "Remove all items from the list. Similar to ``del a[:]``."
msgstr "Αφαιρεί όλα τα στοιχεία από τη λίστα. Παρόμοιο με ``del a[:]``."
#: tutorial/datastructures.rst:65
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 ""
"Επιστρέφει το μηδενικό index στη λίστα του πρώτου στοιχείου του οποίου η "
"τιμή είναι ίση με *x*. Κάνει raise ένα :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* ερμηνεύονται όπως στη σημειογραφία "
"slice και χρησιμοποιούνται για τον περιορισμό της αναζήτησης σε μια "
"συγκεκριμένη υποακολουθία της λίστας. Ο επιστρεφόμενος δείκτης υπολογίζεται "
"σε σχέση με την αρχή της πλήρους ακολουθίας αντί για το όρισμα *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 ""
"Επιστρέφει ένα shallow (ρηχό) αντίγραφο της λίστας. Παρόμοιο με ``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) # 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'"
#: 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`` or "
"``sort`` που τροποποιούν μόνο τη λίστα δεν έχουν εκτυπωμένη τιμή επιστροφής "
"-- επιστρέφουν το προεπιλεγμένο (default) ``None``. [#]_ Αυτή είναι μια "
"αρχή σχεδιασμού για όλες τις μεταβλητές δομές δεδομένων στην Python."
#: 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, "
"'hello', 10]`` δεν ταξινομούνται γιατί ακέραιοι αριθμοί δεν μπορούν να "
"συγκριθούν με συμβολοσειρές (strings) και το ``None`` δεν μπορεί να "
"συγκριθεί με άλλους τύπους. Επίσης, υπάρχουν ορισμένοι τύποι που δεν έχουν "
"καθορισμένη σχέση διάταξης. Για παράδειγμα, το ``3+4j < 5+7j`` δεν είναι "
"έγκυρη σύγκριση."
#: tutorial/datastructures.rst:138
msgid "Using Lists as Stacks"
msgstr "Χρήστη Λιστών ως Στοίβες (Stacks)"
#: tutorial/datastructures.rst:143
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 ""
"Οι μέθοδοι λίστας καθιστούν πιο εύκολη τη χρήση μιας λίστα ως στοίβας "
"(stack), όπου το τελευταίο στοιχείο που προστέθηκε είναι το πρώτο στοιχείο "
"που ανακτήθηκε (\"last-in, first-out\"). Για να προσθέσετε ένα στοιχείο "
"στην κορυφή της στοίβας (stack), χρησιμοποιήστε τη :meth:`!append`. Για να "
"ανακτήσετε ένα στοιχείο από την κορυφής της στοίβας, χρησιμοποιήστε τη :meth:"
"`!pop` χωρίς κάποιο σαφές index. Για παράδειγμα::"
#: 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 "Χρήση λιστών ως Ουρές (Queues)"
#: 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 ""
"Είναι επίσης δυνατό να χρησιμοποιηθεί μια λίστα ως ουρά (queue), όπου το "
"πρώτο στοιχείο που προστίθεται είναι το πρώτο στοιχείο που ανακτάται "
"(\"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 ""
"Για να εφαρμόσετε μια ουρά (queue), χρησιμοποιήστε την :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 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'])"
#: tutorial/datastructures.rst:196
msgid "List Comprehensions"
msgstr "Comprehensions Λίστας"
#: 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 ""
"Τα comprehensions λίστας παρέχουν ένα συνοπτικό τρόπο δημιουργίας λιστών. Οι "
"συνήθεις εφαρμογές είναι η δημιουργία νέων λιστών όπου κάθε στοιχείο είναι "
"το αποτέλεσμα κάποιων πράξεων που εφαρμόζονται σε κάθε μέλος μιας άλλης "
"ακολουθίας ή iterable, ή η δημιουργία μιας υποακολουθίας αυτών των στοιχείων "
"που ικανοποιούν μια συγκεκριμένη συνθήκη."
#: 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`` που εξακολουθεί να υπάρχει μετά την ολοκλήρωση της loop. Μπορούμε να "
"υπολογίσουμε τη λίστα των τετραγώνων χωρίς παρενέργειες χρησιμοποιώντας::"
#: 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 ""
"Ένα comprehension λίστας αποτελείται από αγκύλες που περιέχουν μια έκφραση "
"ακολουθούμενη από μια πρόταση :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"
">>> # 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]"
#: tutorial/datastructures.rst:279
msgid ""
"List comprehensions can contain complex expressions and nested functions::"
msgstr ""
"Τα comprehensions λίστας μπορεί να περιέχουν σύνθετες εκφράσεις και ένθετες "
"συναρτήσεις::"
#: 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 "Comprehensions Ένθετων Λιστών"
#: tutorial/datastructures.rst:288
msgid ""
"The initial expression in a list comprehension can be any arbitrary "
"expression, including another list comprehension."
msgstr ""
"Η αρχική έκφραση σε ένα comprehension λίστας μπορεί να είναι οποιαδήποτε "
"αυθαίρετη έκφραση, συμπεριλαμβανομένης ενός άλλου comprehension λίστας."
#: tutorial/datastructures.rst:291
msgid ""
"Consider the following example of a 3x4 matrix implemented as a list of 3 "
"lists of length 4::"
msgstr ""
"Σκεφτείτε το ακόλουθο παράδειγμα μιας μήτρας 3x4 που υλοποιήθηκε ως μια "
"λίστα 3 λιστών μήκους 4::"
#: 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 "Το ακόλουθο comprehension λίστας θα μεταφέρει γραμμές και στήλες::"
#: 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 ""
"Όπως είδαμε στην προηγούμενη ενότητα, το comprehension της εσωτερικής λίστας "
"αξιολογείται στο πλαίσιο του :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"
"... # 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]]"
#: 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 ""
"Στον πραγματικό κόσμο, θα πρέπει να προτιμάτε τις ενσωματωμένες (built-in) "
"συναρτήσεις από τις σύνθετες εντολές ροής. Η συνάρτηση :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
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 ""
"Υπάρχει ένας τρόπος να αφαιρέσετε ένα στοιχείο από μια λίστα με το ευρετήριο "
"του αντί για την τιμή του: η δήλωση :keyword:`del`. Αυτό διαφέρει από τη "
"μέθοδο :meth:`!pop` που επιστρέφει μια τιμή. Η δήλωση :keyword:`!del` "
"μπορεί επίσης να χρησιμοποιηθεί για την αφαίρεση τμημάτων από μια λίστα ή "
"για την εκκαθάριση ολόκληρης της λίστας (κάτι που κάναμε νωρίτερα με την "
"ανάθεση μιας κενής λίστας στο slice). Για παράδειγμα::"
#: 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 "Πλειάδες (Tuples) και Ακολουθίες"
#: 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 ""
"Είδαμε ότι οι λίστες και οι συμβολοσειρές (strings) έχουνε πολλές κοινές "
"ιδιότητες, όπως λειτουργίες indexing και slicing. Είναι δύο παραδείγματα "
"τύπων δεδομένων *sequence* (δείτε :ref:`typesseq`). Δεδομένου ότι η Python "
"είναι μια εξελισσόμενη γλώσσα, άλλοι τύποι δεδομένων ακολουθίας μπορούν να "
"προστεθούν. Υπάρχει επίσης ένας άλλος τυπικός τύπος δεδομένων ακολουθίας "
"type: the *πλειάδα* (*tuple*)."
#: tutorial/datastructures.rst:378
msgid ""
"A tuple consists of a number of values separated by commas, for instance::"
msgstr ""
"Μια πλειάδα (tuple) αποτελείται από έναν αριθμό τιμών που χωρίζονται με "
"κόμματα, για παράδειγμα::"
#: 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"
">>> # 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])"
#: 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 ""
"Όπως βλέπετε, οι πλειάδες (tuples) στην έξοδο περικλείονται πάντα σε "
"παρενθέσεις, έτσι ώστε οι ένθετε πλειάδες (tuples) να ερμηνεύονται σωστά∙ "
"μπορούν να εισαχθούν με ή χωρίς περιβάλλουσες παρενθέσεις, αν και συχνά οι "
"παρενθέσεις είναι απαραίτητες ούτως ή άλλως (αν η πλειάδα είναι μέρος μιας "
"μεγαλύτερης έκφρασης). Δεν είναι δυνατή η αντιστοίχιση σε μεμονωμένα "
"στοιχεία μιας πλειάδας, ωστόσο είναι δυνατό να δημιουργηθούν πλειάδες "
"(tuples) που περιέχουν μεταβλητά αντικείμενα, όπως λίστες."
#: 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 ""
"Αν και οι πλειάδες (tuples) μπορεί να φαίνονται παρόμοιες με λίστες, "
"χρησιμοποιούνται συχνά σε διαφορετικές καταστάσεις και για διαφορετικούς "
"σκοπούς. Οι πλειάδες (tuples) είναι :term:`immutable`, και συνήθως περιέχουν "
"μια ετερογενή ακολουθία στοιχείων στα οποία η πρόσβαση γίνεται μέσω "
"unpacking (δείτε παρακάτω σε αυτήν την ενότητα) ή το indexing (ή ακόμα και "
"κατά χαρακτηριστικό στην περίπτωση :func:`namedtuples `). Οι λίστες είναι :term:`mutable`, και τα στοιχεία τους είναι "
"συνήθως ομοιογενή και προσπελάζονται με επανάληψη στη λίστα."
#: 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 ""
"Ένα ειδικό πρόβλημα είναι η κατασκευή πλειάδων (tuples) που περιέχουν 0 ή 1 "
"στοιχεία: η σύνταξη έχει κάποιες επιπλέον ιδιορρυθμίες για να τις "
"προσαρμόσει. Οι κενές πλειάδες κατασκευάζονται από ένα κενό ζευγάρι "
"παρενθέσεων, μια πλειάδα (tuple) με ένα στοιχείο δημιουργείται ακολουθώντας "
"μια τιμή με κόμμα (δεν αρκεί να περικλείεται μια μόνο τιμή σε παρενθέσεις). "
"Άσχημο, αλλά αποτελεσματικό. Για παράδειγμα::"
#: tutorial/datastructures.rst:421
msgid ""
">>> empty = ()\n"
">>> singleton = 'hello', # <-- note trailing comma\n"
">>> len(empty)\n"
"0\n"
">>> len(singleton)\n"
"1\n"
">>> singleton\n"
"('hello',)"
msgstr ""
">>> empty = ()\n"
">>> singleton = 'hello', # <-- note trailing comma\n"
">>> 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!'`` είναι ένα παράδειγμα *tuple "
"packing*: οι τιμές ``12345``, ``54321`` και ``'hello!'`` είναι συσκευασμένες "
"μαζί σε μια πλειάδα (tuple). Η αντίστροφη λειτουργία είναι επίσης εφικτή::"
#: 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 ""
"Αυτό ονομάζεται, αρκετά σωστά, *sequence unpacking* και λειτουργεί για "
"οποιαδήποτε ακολουθία στη δεξιά πλευρά. Το sequence unpacking απαιτεί να "
"υπάρχουν τόσες μεταβλητές στην αριστερή πλευρά του συμβόλου ισότητας όσα "
"στοιχεία υπάρχουν στην ακολουθία. Σημείωση ότι η πολλαπλή ανάθεση είναι "
"στην πραγματικότητα απλώς ένας συνδυασμός tuple packing και sequence "
"unpacking."
#: tutorial/datastructures.rst:446
msgid "Sets"
msgstr "Σύνολα (Sets)"
#: 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 ""
"Η Python περιλαμβάνει επίσης έναν τύπο δεδομένων για *sets*. Ένα set είναι "
"μια μη ταξινομημένη συλλογή χωρίς διπλότυπα στοιχεία. Οι βασικές χρήσεις "
"περιλαμβάνουν τη δοκιμή ιδιότητας μέλους και την εξάλειψη διπλότυπων "
"εγγραφών. Τα αντικείμενα συνόλου υποστηρίζουν επίσης μαθηματικές πράξεις "
"όπως ένωση, τομή, διαφορά και συμμετρική διαφορά."
#: tutorial/datastructures.rst:453
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
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) # 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'}"
#: tutorial/datastructures.rst:482
msgid ""
"Similarly to :ref:`list comprehensions `, set comprehensions "
"are also supported::"
msgstr ""
"Ομοίως με :ref:`list comprehensions `, υποστηρίζονται επίσης "
"τα comprehensions των συνόλων::"
#: tutorial/datastructures.rst:485
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 "Λεξικά (Dictionaries)"
#: tutorial/datastructures.rst:495
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 ""
"Ένα άλλος χρήσιμος τύπος δεδομένων που είναι ενσωματωμένος στην Python είναι "
"το *dictionary* (βλ. :ref:`typesmapping`). Τα λεξικά βρίσκονται μερικές "
"φορές σε άλλες γλώσσες ως \"συσχετιστικές μνήμες\" ή \"συσχετιστικοί "
"πίνακες\". Σε αντίθεση με τις ακολουθίες, οι οποίες είναι με indexes με ένα "
"εύρος αριθμών, τα λεξικά γίνονται index με *keys*, που μπορεί να είναι "
"οποιοσδήποτε αμετάβλητος τύπος∙ οι συμβολοσειρές και οι αριθμοί μπορούν "
"πάντα να είναι κλειδιά. Οι πλειάδες (tuples) μπορούν να χρησιμοποιηθούν ως "
"κλειδιά εάν περιέχουν μόνο συμβολοσειρές, αριθμούς ή πλειάδες (tuples)∙ εάν "
"μια πλειάδα περιέχει οποιοδήποτε μεταβλητό αντικείμενο είτε άμεσα είτε "
"έμμεσα, δεν μπορεί να χρησιμοποιηθεί ως κλειδί. Δεν μπορείτε να "
"χρησιμοποιήσετε λίστες ως κλειδιά, καθώς οι λίστες μπορούν να τροποποιηθούν "
"επιτόπου χρησιμοποιώντας αναθέσεις index, αναθέσεις slice, ή μεθόδους όπως :"
"meth:`!append` και :meth:`!.extend`."
#: tutorial/datastructures.rst:506
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 ""
"Είναι καλύτερο να σκεφτείτε ένα λεξικό ως ένα σύνολο ζευγών *key: value*, με "
"την προϋπόθεση ότι τα κλειδιά είναι μοναδικά (σε ένα λεξικό). Ένα ζεύγος "
"αγκύλων δημιουργεί ένα κενό λεξικό: ``{}``. Η τοποθέτηση μιας λίστας ζευγών "
"key:value στο λεξικό, αυτός είναι επίσης ο τρόπος με τον οποίο γράφονται τα "
"λεξικά στην έξοδο."
#: tutorial/datastructures.rst:512
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 ""
"Οι κύριες λειτουργίες σε ένα λεξικό είναι η αποθήκευση μιας τιμής με κάποιο "
"κλειδί και η εξαγωγή της τιμής που δίνεται στο κλειδί. Είναι επίσης δυνατή "
"η διαγραφή ενός ζεύγους key:value με ``del``. Εάν αποθηκεύετε "
"χρησιμοποιώντας ένα κλειδί που βρίσκεται ήδη σε χρήση, η παλιά τιμή που "
"σχετίζεται με αυτό το κλειδί έχει ξεχαστεί. Είναι σφάλμα να εξαγάγετε μια "
"τιμή χρησιμοποιώντας ένα ανύπαρκτο κλειδί."
#: tutorial/datastructures.rst:518
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:523
msgid "Here is a small example using a dictionary::"
msgstr "Ακολουθεί ένα μικρό παράδειγμα χρησιμοποιώντας ένα λεξικό::"
#: tutorial/datastructures.rst:525
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"
">>> 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"
">>> 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:544
msgid ""
"The :func:`dict` constructor builds dictionaries directly from sequences of "
"key-value pairs::"
msgstr ""
"Ο constructor :func:`dict` δημιουργεί λεξικά απευθείας από ακολουθίες ζευγών "
"key-value::"
#: tutorial/datastructures.rst:547
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:550
msgid ""
"In addition, dict comprehensions can be used to create dictionaries from "
"arbitrary key and value expressions::"
msgstr ""
"Επιπλέον, τα comprehensions λεξικών μπορούν να χρησιμοποιηθούν για τη "
"δημιουργία λεξικών από αυθαίρετες εκφράσεις κλειδιού και τιμών::"
#: tutorial/datastructures.rst:553
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:556
msgid ""
"When the keys are simple strings, it is sometimes easier to specify pairs "
"using keyword arguments::"
msgstr ""
"Όταν τα κλειδιά είναι απλές συμβολοσειρές, μερικές φορές είναι πιο εύκολο να "
"ορίσετε ζεύγη χρησιμοποιώντας ορίσματα λέξεων-κλειδιών::"
#: tutorial/datastructures.rst:559
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:566
msgid "Looping Techniques"
msgstr "Τεχνικές Looping"
#: tutorial/datastructures.rst:568
msgid ""
"When looping through dictionaries, the key and corresponding value can be "
"retrieved at the same time using the :meth:`~dict.items` method. ::"
msgstr ""
"Κατά το looping μέσω λεξικών, το κλειδί και η αντίστοιχη τιμή μπορούν να "
"ανακτηθούν ταυτόχρονα χρησιμοποιώντας τη μέθοδο :meth:`~dict.items`. ::"
#: tutorial/datastructures.rst:571
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:578
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 ""
"Κατά το looping μέσω ακολουθίας, ο δείκτης θέσης και η αντίστοιχη τιμή "
"μπορούν να ανακτηθούν ταυτόχρονα χρησιμοποιώντας τη συνάρτηση :func:"
"`enumerate`. ::"
#: tutorial/datastructures.rst:581
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:588
msgid ""
"To loop over two or more sequences at the same time, the entries can be "
"paired with the :func:`zip` function. ::"
msgstr ""
"Για να κάνετε loop σε δύο ή περισσότερες ακολουθίες ταυτόχρονα, οι "
"καταχωρίσεις μπορούν να αντιστοιχιστούν με τη συνάρτηση :func:`zip`. ::"
#: tutorial/datastructures.rst:591
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:600
msgid ""
"To loop over a sequence in reverse, first specify the sequence in a forward "
"direction and then call the :func:`reversed` function. ::"
msgstr ""
"Για να κάνετε loop σε μια ακολουθία αντίστροφα, καθορίστε πρώτα την "
"ακολουθία προς τα εμπρός και μετά καλέστε τη συνάρτηση :func:`reversed`. ::"
#: tutorial/datastructures.rst:603
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:612
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 ""
"Για να κάνετε loop σε μια ακολουθία με ταξινομημένη σειρά, χρησιμοποιήστε τη "
"συνάρτηση :func:`sorted`, η οποία επιστρέφει μια νέα ταξινομημένη λίστα "
"αφήνοντας την πηγή αναλλοίωτη. ::"
#: tutorial/datastructures.rst:615
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:626
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:`sorted` σε συνδυασμό με το :func:`set` σε μια ακολουθία "
"είναι ένας ιδιωματικός τρόπος για να κάνετε loop πάνω από μοναδικά στοιχεία "
"της ακολουθίας σε ταξινομημένη σειρά. ::"
#: tutorial/datastructures.rst:630
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:639
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:642
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:656
msgid "More on Conditions"
msgstr "Περισσότερα για τις συνθήκες"
#: tutorial/datastructures.rst:658
msgid ""
"The conditions used in ``while`` and ``if`` statements can contain any "
"operators, not just comparisons."
msgstr ""
"Οι συνθήκες που χρησιμοποιούνται στις δηλώσεις ``while`` και ``if`` μπορούν "
"να περιέχουν οποιουσδήποτε τελεστές, όχι μόνο συγκρίσεις."
#: tutorial/datastructures.rst:662
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`` είναι δοκιμές ιδιότητας μέλους "
"που καθορίζουν εάν μια τιμή βρίσκεται (ή όχι σε) ένα container. Οι τελεστές "
"``is`` και ``is not`` συγκρίνουν εάν δύο αντικείμενα είναι πραγματικά το "
"ίδιο αντικείμενο. Όλοι οι τελεστές σύγκρισης έχουν την ίδια προτεραιότητα, "
"η οποία είναι χαμηλότερη από αυτή όλων των αριθμητικών τελεστών."
#: tutorial/datastructures.rst:668
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:671
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:678
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`` and ``C`` είναι αληθές, αλλά το ``B`` είναι ψευδές, το ``A and B and "
"C`` δεν αξιολογεί την έκφραση ``C``. Όταν χρησιμοποιείται ως γενική τιμή "
"και όχι ως λογική, η τιμή επιστροφής ενός short-circuit τελεστή είναι το "
"τελευταίο αξιολογημένο όρισμα."
#: tutorial/datastructures.rst:685
msgid ""
"It is possible to assign the result of a comparison or other Boolean "
"expression to a variable. For example, ::"
msgstr ""
"Είναι δυνατό να αντιστοιχίσετε το αποτέλεσμα μιας σύγκρισης ή άλλη δυαδική "
"έκφρασης σε μια μεταβλητή. Για παράδειγμα, ::"
#: tutorial/datastructures.rst:688
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:693
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 ""
"Σημειώστε ότι στην Python, σε αντίθεση με την C, η ανάθεση εντός των "
"εκφράσεων πρέπει να γίνεται ρητά με τον τελεστή :ref:`walrus operator ` ``:=``. Αυτό αποφεύγει μια "
"κοινή κατηγορία προβλημάτων που συναντώνται στα προγράμματα C: "
"πληκτρολογώντας ``=`` σε μια έκφραση όταν προοριζόταν το ``==``."
#: tutorial/datastructures.rst:703
msgid "Comparing Sequences and Other Types"
msgstr "Σύγκριση ακολουθιών και άλλων τύπων"
#: tutorial/datastructures.rst:704
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 ""
"Τα αντικείμενα ακολουθίας μπορούν συνήθως να συγκριθούν με άλλα αντικείμενα "
"με τον ίδιο τύπο ακολουθίας. Η σύγκριση χρησιμοποιεί *lexicographical* "
"σειρά: πρώτα συγκρίνονται τα δύο πρώτα στοιχεία και αν διαφέρουν αυτό "
"καθορίζει το αποτέλεσμα της σύγκρισης∙ εάν είναι ίσα, τα επόμενα δύο "
"στοιχεία συγκρίνονται και ούτω καθεξής, έως ότου εξαντληθεί η μία από τις "
"δύο ακολουθίες. Εάν δύο στοιχεία προς σύγκριση είναι τα ίδια ακολουθίες του "
"ίδιου τύπου, η λεξικογραφική σύγκριση πραγματοποιείται αναδρομικά. Εάν όλα "
"τα στοιχεία δύο ακολουθιών συγκρίνονται ίσα, οι ακολουθίες θεωρούνται ίσες. "
"Εάν η μια ακολουθία είναι αρχική υποακολουθία της άλλης, η μικρότερη "
"ακολουθία είναι η μικρότερη (ελάχιστη). Η λεξικογραφική ταξινόμηση "
"συμβολοσειρών χρησιμοποιεί τον αριθμό κωδικού σημείου Unicode για να "
"ταξινομήσει μεμονωμένους χαρακτήρες. Μερικά παραδείγματα συγκρίσεων μεταξύ "
"ακολουθιών του ίδιου τύπου::"
#: tutorial/datastructures.rst:716
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:724
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 ""
"Λάβετε υπόψη ότι η σύγκριση αντικειμένων διαφορετικών τύπων με ``<`` ή ``>`` "
"είναι νόμιμη υπό τον όρο ότι τα αντικείμενα διαθέτουν κατάλληλες μεθόδους "
"σύγκρισης. Για παράδειγμα, οι μικτές αριθμητικοί τύποι συγκρίνονται σύμφωνα "
"με την αριθμητική τους τιμή, οπότε το 0 ισούται με 0.0, κλπ. Διαφορετικά, "
"αντί να παρέχει μια αυθαίρετη παραγγελία, ο διερμηνέας θα κάνει raise μια "
"εξαίρεση :exc:`TypeError`."
#: tutorial/datastructures.rst:732
msgid "Footnotes"
msgstr "Υποσημειώσεις"
#: tutorial/datastructures.rst:733
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();``."