Λίστες. Lista=[ red, green, blue ] Το πλήθος των στοιχείων μια λίστας δίνεται από τη συνάρτηση len(): Len(Lista)

Σχετικά έγγραφα
Θέματα Προγραμματισμού Η/Υ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 5. Λεξικά (Dictionaries)

Standard Template Library (STL) C++ library

Πληροφορική ΙΙ Θεματική Ενότητα 10

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

ακολουθία (sequence)

ΠΛΗΡΟΦΟΡΙΚΗ Ι (Python) Ενότητα 4

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

Σημειώσεις. Ο αριθμός των στοιχείων μίας λίστας μπορεί να βρεθεί με χρήση της συνάρτησης len:

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Βασικά Στοιχεία Python 3

Βασικές Ασκήσεις από τα Εργαστήρια της Python. Πέμπτη Εργ. 3 17:15 και 19:15

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Λεξικά Χειμερινό Εξάμηνο 2016

Προγραμματιστικά Εργαλεία και Τεχνολογίες για Επιστήμη Δεδομένων

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΡΙΤΗ 13 ΙΟΥΝΙΟΥ 2017

Πληρουορική Γ Γσμμασίοσ

Διορθώσεις σελ

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Python 8. Δομές Δεδομένων ΙΙ

Θέματα Προγραμματισμού Η/Υ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λεξικά Χειµερινό Εξάµηνο 2014

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Προγραμματισμός ΙI (Θ)

Εισαγωγή στον Προγραμματισμό

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Δομές δεδομένων (2) Αλγόριθμοι

Σημειωματάριο Δευτέρας 13 Νοε. 2017

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ ΤΡΙΤΗ 11 ΙΟΥΝΙΟΥ 2019 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ

Λίστα. Το διάνυζμα (vector) στο Mathematica είναι μια λίστα που έχει τα στοιχεία. Ο πίνακας ( matrix ) είναι λίστα απο τις λίστες.

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Δομημένος Προγραμματισμός

Τυπικές χρήσεις της Matlab

Κεφάλαιο 5: Δομές δεδομένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στον Προγ/μό Υπολογιστών

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στον Προγ/μό Υπολογιστών

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Γράψτε ένα πρόγραμμα που να τυπώνει τον Αριθμό Μητρώου σας με χρήση της συνάρτησης print.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Εισαγωγή στον Προγραμματισμό Python Μάθημα 3: πίνακες και βρόγχος επανάληψης for (για) Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

ΚΕΦΑΛΑΙΟ 6. Συμβολοσειρές, λίστες, πλειάδες, λεξικά. 6.1 Εισαγωγή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

Η γλώσσα προγραμματισμού Strange

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Κεφάλαιο 10 Υποπρογράμματα. Καραμαούνας Πολύκαρπος

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

ΑΕΠΠ 7o Επαναληπτικό Διαγώνισμα

Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ανάπτυξη και Σχεδίαση Λογισμικού

Transcript:

Λίστες Η πιο σημαντική ακολουθία της Python, μοιάζουν με τους πίνακες των παραδοσιακών γλωσσών αλλά είναι πολύ ποιο ευέλικτες: μπορεί να περιέχουν στοιχεία διαφορετικού τύπου και μας παρέχουν τη δυνατότητα να αυξομειώνουμε το μέγεθός τους κατά βούληση. Μια λίστα αποτελείται από στοιχεία χωρισμένα με κόμμα ανάμεσα σε ένα ζεύγος τετράγωνων αγκυλών : Lista=[ red, green, blue ] Το πλήθος των στοιχείων μια λίστας δίνεται από τη συνάρτηση len(): Len(Lista)

Λίστες Η πρόσβαση στα στοιχεία μιας λίστας γίνεται μέσω δεικτοδότησης (indexing). Το πρώτο στοιχείο της λίστας έχει δείκτη 0. Η εξαγωγή ενός τμήματος μιας λίστας γίνεται με τη λειτουργίας της διαμέρισης όπως και στα αλφαριθμητικά:

Λίστες Για να ορίσουμε μια κενή λίστα εκχωρούμε ένα άδειο ζευγάρι αγκυλών: Lista=[] Η Python υποστηρίζει επίσης της λεγόμενες «υπολογιζόμενες λίστες» (list comprehensions) και μας παρέχει μια συντακτική δομή για δημιουργία λιστών από υπάρχουσες: comprehensionslist=[έκφραση for μεταβλητή in ακολουθία] NeaLista=[2**i for i in range(11)] #δημιουργια λιστας των δυνάμεων του 2 για τους αριθμούς 0-10

Λίστες Επεκτείνοντας το προηγούμενο παράδειγμα χρησιμοποιούμε και την εντολή if για να υπολογίσουμε τις δυνάμεις του 2 για τους περιττούς αριθμούς: NeaLista=[2**i for i in range(11) if i%2==1]

Λίστες Μια Λίστα μπορεί να αποτελείται και από άλλες λίστες: Lista=[['Χρήστος',47],['Κωνσταντίνος',11],['Αναστασία',15]] Η εντολή Lista[0] θα δώσει έξοδο: [ Χρήστος,47] Για να προσπελάσουμε τα επιμέρους στοιχεία από τα οποία αποτελείται το πρώτο στοιχείο (που είναι και αυτό λίστα), χρησιμοποιούμε και δεύτερο δείκτη: Lista[0][0] θα δώσει στην έξοδο Χρήστος Lista[0][1] θα δώσει στην έξοδο 47

Βασικές Λειτουργίες Λιστών Η συνένωση των λιστών γίνεται με τον τελεστή + όπως και στα αλφαριθμητικά: Πολλαπλασιάζοντας μια λίστα με έναν ακέραιο αριθμό Ν έχουμε ως αποτέλεσμα μια νέα λίστα που αποτελείται Ν φορές τα στοιχεία της αρχικής:

Βασικές Λειτουργίες Λιστών H προσθήκη ενός νέου στοιχείου σε μια λίστα γίνεται με τη μέθοδο append(): Η αφαίρεση ενός στοιχείου από τη λίστα γίνεται με τη μέθοδο remove():

Βασικές Λειτουργίες Λιστών Η μέθοδος pop() χωρίς όρισμα αφαιρεί το τελευταίο στοιχείο και μας το επιστρέφει. Εναλλακτικά μπορούμε να την καλέσουμε με όρισμα έναν δείκτη, ώστε να επιστρέψει/αφαιρέσει το αντίστοιχο στοιχείο:

Βασικές Λειτουργίες Λιστών Οι μέθοδοι append() και pop() μπορούν να χρησιμοποιηθούν για τη δημιουργία στοίβας (stack) ή ουράς (queue). Η append() προσθέτει ένα στοιχείο στο τέλος της λίστας και η pop() το αφαιρεί (LIFO), ενώ η κλήση pop(0) αφαιρεί το πρώτο στοιχείο της λίστας (FIFO) Η μέθοδος insert() έχει δύο ορίσματα έναν δείκτη και ένα στοιχείο το οποίο προσθέτει στη συγκεκριμένη θέση:

Βασικές Λειτουργίες Λιστών Η μέθοδος extend() στη πραγματικότητα συνενώνει λίστες. Δέχεται ένα όρισμα που είναι λίστα και προσθέτει τα στοιχεία της στο τέλος: Η μέθοδος reverse() μας επιστρέφει τα στοιχεία της λίστας:

Βασικές Λειτουργίες Λιστών Η μέθοδος count() δέχεται ένα όρισμα και μας επιστρέφει το πλήθος των εμφανίσεων της τιμής του ορίσματος στη λίστα: Η μέθοδος sort() ταξινομεί τα στοιχεία της λίστας κατά αύξουσα σειρά:

Βασικές Λειτουργίες Λιστών Η μέθοδος Index() επιστρέφει τη θέση της πρώτης εμφάνισης ενός στοιχείου στη λίστα: Ένα στοιχείο μιας λίστας συμπεριφέρεται όπως ακριβώς και μια μεταβλητή. Ο απλούστερος τρόπο αλλαγής της τιμής ενός στοιχείου είναι μέσω του δείκτη του: Λίστα μπορούμε να δημιουργήσουμε και με τη μέθοδο κατασκευαστή της κλάσης (constructor) που είναι η list():

Βασικές Λειτουργίες Λιστών Η σάρωση μιας λίστας γίνεται με ένα βρόγχο for:

Βασικές Λειτουργίες Λιστών Αν κατά τη σάρωση χρειαζόμαστε το στοιχείο και τη θέση του χρησιμοποιούμε την ενσωματωμένη συνάρτηση enumerate():

Βασικές Λειτουργίες Λιστών H Python δε διαθέτει πίνακες με τη μορφή που υπάρχουν σε άλλες γλώσσες προγραμματισμού, (υπάρχουν βιβλιοθήκες που κάνουν αυτή τη δουλειά όπως η NumPy). Στη βασική έκδοση μπορούμε να υλοποιήσουμε δομές πινάκων με τη βοήθεια λιστών. Ένας πίνακας μιας διάστασης αντιστοιχεί σε μια λίστα, ενώ ένας πίνακας 2 διαστάσεων αποτελείται από μια λίστα της οποίας κάθε στοιχείο είναι μια άλλη λίστα. matrix = [] for i in range(3): #δηλώνουμε μια κενή λίστα matrix.append([]) #προσθέτουμε ως στοιχεία 3 λίστες for j in range(3): matrix[i].append(i+j) #περνάμε δεδομένα σε κάθε μια από της 3 λίστες print(matrix)

Βασικές Λειτουργίες Λιστών Ένας πιο γρήγορος τρόπος δημιουργίας πίνακα 2 διαστάσεων είναι με τη λειτουργία υπολογιζόμενης λίστας (list comprehensions). To Επόμενο πρόγραμμα δημιουργεί έναν πίνακα 4χ4 με τυχαίες μονοψήφιες τιμές: (4.02) import random print('array 4x4 with random values:') Α = [[random.randint(0,9) for x in range(4)] for x in range(4)] for i in range(len(α)): for j in range(len(α[0])): print('%3d' % Α[i][j], end='') print() print('transpose rows and columns:') Α = [[row[i] for row in Α] for i in range(4)] for i in range(len(α)): for j in range(len(α[0])): print('%2d' % Α[i][j], end='') print()

Πλειάδες Οι πλειάδες (tuples) ή αλλιώς διατεταγμένες λίστες, είναι δομές παρόμοιες με τις λίστες με τη διαφορά ότι δεν μπορούν να μεταβληθούν (immutable) Συνήθως οι λίστες χρησιμοποιούνται για ομοιογενείς ακολουθίες, ενώ οι πλειάδες για ανομοιογενείς. Μια πλειάδα είναι ιδανική δομή δεδομένων για την αντιστοίχιση μιας εγγραφής ενός πίνακα μιας βάσης δεδομένων Οι πλειάδες ορίζονται με παρόμοιο συντακτικό αλλά με παρενθέσεις () αντί για []:

Πλειάδες Η πλειάδα παραμένει σταθερή καθ όλη τη διάρκεια εκτέλεσης του προγράμματος. Η πρόσβαση στα στοιχεία της γίνεται με δεικτοδότηση, όπως ακριβώς και με τις λίστες. Και στις πλειάδες το πρώτο στοιχείο έχει δείκτη 0 Αν προσπαθήσουμε να αλλάξουμε κάποιο στοιχείο της παραπάνω λιστας:

Πλειάδες Tuple packing: λειτουργία δημιουργίας μιας πλειάδας μέσω εκχώρησης τιμών χωρισμένων με κόμμα: Tuple unpacking: Η αντίστροφη λειτουργία δηλαδή η κατανομή των τιμών μιας πλειάδας σε μεταβλητές

Πλειάδες Μια πλειάδα ορίζεται επίσης μ ένα ζευγάρι κενών παρενθέσεων ή με ένα στοιχείο ακολουθούμενο από κόμμα: Η συνένωση δύο πλειάδων γίνεται με τη χρήση του τελεστή + όπως και στις λίστες:

Πλειάδες Στις πλειάδες επίσης λειτουργούν και οι τελεστές *,==,!= και in τους οποίους γνωρίσαμε από τις λίστες Η μετατροπή ενός αντικειμένου σε πλειάδα γίνεται με τη συνάρτηση tuple(). Το πρόγραμμα που ακολουθεί μετατρέπει μια πλειάδα σε λίστα, την ταξινομεί κατά φθίνουσα σειρά και την μετατρέπει πάλι σε πλειάδα: # 4-03.py mytuple = ('delta', 'sigma', 'alpha', 'beta', 'theta') mylist = list(mytuple) mylist.sort(reverse=true) mytuple = tuple(mylist) print('sorted tuple:', mytuple)

Πλειάδες Εκτός από τη συνάρτηση sort() εφαρμογή στις πλειάδες έχουν και οι συναρτήσεις: len(), min(),max(),count(),index() που είδαμε στις λίστες. Ο τελεστής In εφαρμόζεται επίσης για να δώσει πληροφορία σχετική με τον αν κάποιο στοιχείο περιέχεται στην πλειάδα:

Λεξικά Ένα λεξικό (dictionary) είναι μια δομή δεδομένων που αποτελείται από ζεύγη τη μορφής κλειδί τιμή (key-value). Τα κλειδιά είναι μοναδικά και καθένα από αυτά αντιστοιχεί σε μια τιμή. Τα στοιχεία του λεξικού δεν έχουν συγκεκριμένη σειρά και η αναφορά σε κάποιο στοιχείο γίνεται μέσω του κλειδιού. Ένα κλειδί μπορεί να είναι αριθμός, αλφαριθμητικό ή και μια πλειάδα (με αριθμούς και αλφαριθμητικά), η δε τιμή μπορεί να είναι οποιουδήποτε τύπου. Το λεξικό της Python είναι το αντίστοιχο ενός πίνακα κατακερματισμού (hash table) άλλων γλωσσών προγραμματισμού. Ένα κενό λεξικό δημιουργείται με ένα ζευγάρι κενών αγκίστρων και στη συνέχεια χρησιμοποιούμαι το όνομα του λεξικού και τετράγωνες αγκύλες για να προσθέσουμε ζευγάρια δεδομένων:

Λεξικά Η αλλαγή τιμής γίνεται με τη χρήση του τελεστή ανάθεσης. Αν το κλειδί υπάρχει θα ενημερωθεί με τη νέα τιμή αν δεν υπάρχει θα γίνει εισαγωγή νέου ζεύγους: Στην περίπτωση που ζητήσουμε από το λεξικό να μας επιστρέψει τη τιμή ανύπαρκτου κλειδιού θα εμφανιστεί μήνυμα λάθους:

Λεξικά Εναλλακτικά μπορούμε να ορίσουμε ένα νέο λεξικό χρησιμοποιώντας την άνω και κάτω τελεία για το διαχωρισμό κλειδιών και τιμών και κόμμα μεταξύ των στοιχείων: Επίσης μπορούμε να χρησιμοποιήσουμε τον κατασκευαστή της κλάσης για τη δημιουργία ενός νέου λεξικού από μια ακολουθία ζευγών κλειδιού τιμής :

Λεξικά Η λειτουργία υπολογιζόμενα λεξικά (dict comprehensions) εφαρμόζεται με την ίδια σύνταξη με αυτή των υπολογιζόμενων λιστών (αντί για τις τετράγωνες αγκύλες των λιστών χρησιμοποιούμε άγκιστρα) Η προσπέλαση στα επιμέρους στοιχεία ενός λεξικού γίνεται με ένα βρόχο for και τη μέθοδο key() που επιστρέφει μια λίστα με τα ονόματα των κλειδιών του:

Λεξικά Η μέθοδος values() επιστρέφει μια λίστα με όλες τις τιμές του λεξικού Η μέθοδος items() μας επιστρέφει μια λίστα με πλειάδες ζευγαριών (κλειδί, τιμή):

Λεξικά Ο έλεγχος για το αν κάποια τιμή βρίσκεται στο λεξικό γίνεται με τον τελεστή in : Η μέθοδος get(key[,d]) επιστρέφει το στοιχείο με κλειδί key. Αν δεν υπάρχει το κλειδί επιστρέφει το d. Η προκαθορισμένη τιμή επιστροφής είναι το None

Λεξικά Η μέθοδος pop(key[,d]) διαγράφει το στοιχείο με κλειδί key και επιστρέφει την τιμή του στοιχείου ή d αν δεν υπάρχει το στοιχείο: Η μέθοδος clear() διαγράφει όλα τα στοιχεία ενός λεξικού. Η μέθοδος fromkeys(seq[,d]) δημιουργεί ένα νέο λεξικό με κλειδιά από την ακολουθία seq και τιμές d ή None αν δεν καθοριστεί. Η μέθοδος setdefault(key[,d]) επιστρέφει την τιμή του key εφόσον το key υπάρχει στο λεξικό. Αν το κλειδί δεν υπάρχει, το προσθέτει στο λεξικό με αντίστοιχη τιμή d. Η μέθοδος αυτή έχει ως προκαθορισμένη τιμή του d το None

Λεξικά # 4-04.py icc = {}.fromkeys(['gr', 'de', 'fr'], 2) print(icc) icc.setdefault('it', 2) icc.setdefault('uk') icc.setdefault('usa', 3) print('length of dictionary is', len(icc)) del icc['de'] print(icc) icc.clear() print('length of dictionary is', len(icc)) H len() μας επιστρέφει το πλήθος των στοιχείων μια ακολουθίας και με την εντολή del διαγράφουμε ένα στοιχείο της. Η εντολή del με όρισμα το όνομα του λεξικού μόνο, διαγράφει ολόκληρο το λεξικό

Σύνολα Τα σύνολα (set) είναι συλλογές από μη διατεταγμένα μοναδικά στοιχεία και χρησιμοποιούνται σε μαθηματικές πράξεις συνόλων (ένωση, τομή κλπ). Ένα σύνολο μπορεί να αποτελείται από διαφορετικού τύπου στοιχεία, αλλά δεν μπορεί να περιέχει στοιχεία που μεταβάλλονται (mutable) όπως είναι για παράδειγμα οι λίστες. Ένα σύνολο δημιουργείται με την κλήση της συνάρτησης set(): Ένα σύνολο ορίζεται με άγκιστρα και τα στοιχεία της ακολουθίας είναι μοναδικά και μη διατεταγμένα, έτσι μπορούμε να ορίσουμε ένα σύνολο και ως εξής:

Σύνολα Προσοχή: δεν μπορούμε να δημιουργήσουμε ένα σύνολο που να περιέχει ως στοιχείο μια λίστα ή ένα λεξικό, μπορούμε όμως να χρησιμοποιήσουμε μία λίστα για να δημιουργήσουμε ένα σύνολο από τα στοιχεία της:

Σύνολα Η προσθήκη ενός στοιχείου σε ένα σύνολο γίνεται με τη μέθοδο add() και πολλαπλών στοιχείων με τη μέθοδο update(): Η αφαίρεση ενός στοιχείου από ένα σύνολο γίνεται με τη μέθοδο remove(). Ο έλεγχος αν ένα στοιχείο είναι μέλος ενός συνόλου γίνεται με τον τελεστή In και το πλήθος των στοιχείων μας το δίνει η συνάρτηση len():

Σύνολα Οι μέθοδοι issubset() και issuperset() εξετάζουν αν ένα σύνολο είναι υποσύνολο ή υπερσύνολο ενός άλλου: Η τομή και η ένωση δύο συνόλων δίνονται από τις μεθόδους intersection() και union() αντίστοιχα: Η μέθοδος difference() μας δίνει τη διαφορά δύο συνόλων. Αν χρειαζόμαστε ένα σύνολο που δεν τροποποιείται μπορούμε να χρησιμοποιήσουμε τη συνάρτηση frozenset()

Λίγος κώδικας # 4-05.py alist = [1, 2, 3, 4, 5] blist = [1, 2, 3, 4, 5] clist = alist alist[2] = 'Θάσος' print(alist is clist) print(alist == blist)

Λίγος κώδικας Η συνάρτηση sorted() μπορεί να χρησιμοποιηθεί στην ταξινόμηση μιας λίστας. Στο παράδειγμα που ακολουθεί ταξινομούμε μια λίστα με αλφαριθμητικά σύμφωνα με το μήκος τους και τα εμφανίζουμε με ένα βρόγχο for # 4-06.py names = ['Klaus', 'Ted', 'Vladimir', 'Peter', 'Anna'] snames = sorted(names, key=len, reverse=true) #Με το key=len καθορίζουμε τη συνάρτηση σύμφωνα με την for name in snames: # οποία θέλουμε να γίνει ταξινόμηση και με το reverse=true print(name + ' has ' + str(len(name)) + ' chars') # δηλώνουμε ότι θέλουμε αντίστροφη σειρά ταξινόμησης

Λίγος κώδικας # 4-07.py import random rlist = [random.randint(1,1001) for i in range(10)] #Δημιουργούμε μια λίστα 10 στοιχείων με τυχαίους αριθμούς από 1 μέχρι το 1000 MIN = MAX = rlist[0] for i in range(len(rlist)): if rlist[i] < MIN: MIN = rlist[i] if rlist[i] > MAX: MAX = rlist[i] print('minimum is', MIN, 'and maximum is', MAX) print('with built-in functions:', min(rlist), max(rlist)) #χρησιμοποιούμε τις ενσωματωμένες συναρτήσεις min() και max() για να βρούμε τις ίδιες τιμές της ακολουθίας

Λίγος κώδικας πολλαπλασιασμός τετραγωνικών πινάκων 1. # 4-09.py 2. n = int(input('enter the dimension: ')) 3. print('enter values for the Matrix A') 4. A = [] 5. for i in range(0, n): 6. A.append([int(x) for x in input('').split(' ')]) #προσθέτουμε στοιχεία στο πίνακα, ο τεμαχισμός των δεδομένων γίνεται με τη split() 7. print('enter values for Matrix B') #προκαθορισμένος χαρακτήρας διαχωρισμού είναι το κενό 8. B = [] 9. for i in range(0, n): 10. B.append([int(x) for x in input('').split()]) #προσθέτουμε στοιχεία στο πίνακα 11. C = [[0 for i in range(n)] for j in range(n)] #δημιουργούμε νέο πίνακα με τις ίδιες διαστάσεις και μηδενικά στοιχεία 12. for i in range(len(a)): 13. for j in range(len(b[0])): 14. for k in range(len(b)): 15. C[i][j] += A[i][k] * B[k][j] 16. print('matrix C = A * B') 17. for item in C: 18. print(item)

Λίγος κώδικας τηλεφωνικός κατάλογος 1. # 4-11.py 2. phones = {} 3. phones['soula'] = '2138'; phones['koula'] = '2156' 4. phones['toula'] = '2133'; phones['roula'] = '2128' 5. ch = 0 6. while ch!= 4: 7. print('\n=== Menu ===') 8. print('1. Search\n2. Print List\n3. Clear List\n4. Exit') 9. ch = int(input('your choice please:')) 10. if ch < 1 or ch > 4: 11. print('1, 2, 3 or 4 only permitted') 12. continue 13. if ch == 1: 14. name = input('give name to search:') 15. if name in phones.keys(): 16. print('%s : is %s' % (name, phones[name])) 17. else: 18. print('%s is not in dictionary' % (name)) 19. if ch == 2: 20. if len(phones) == 0: 21. print('phone book is empty!') 22. else: 23. print('\nname', 'Phone') 24. print('=============') 25. for k,v in phones.items(): 26. print(k, v) 27. if ch == 3: 28. ans = input('are you sure? (y/n)') 29. if ans == 'y': phones.clear()