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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Σφάλματα, εξαιρέσεις, εκσφαλμάτωση Χειμερινό Εξάμηνο 2016

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

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

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

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

Γλώσσα προγραμματισμού python

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Έλεγχος Ροής Προγράμματος

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Έλεγχος Ροής Προγράµµατος Χειµερινό Εξάµηνο 2014

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

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

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

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

Εξαιρέσεις Εισαγωγή. Εξαιρέσεις. ηµήτρης Λεβεντέας

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

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

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

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

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

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

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

Συστήματα Γνώσης. Πρακτικό Κομμάτι Μαθήματος Πρότυπα Γεγονότων. Νίκος Βασιλειάδης, Αναπλ. Καθηγητής Τμήμα Πληροφορικής

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

HTTP API v1.6 SMSBOX.GR HTTP API v

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

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

n true false if t then t else t u t t b t emptylist cons t t t t λx.t u ::= head tail isempty

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

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

Σημειωματάριο Δευτέρας 23 Οκτ. 2017

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

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

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

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

Βασικά στοιχεία γλώσσας προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Τεχνικός Εφαρμογών Πληροφορικής

server : Ο υπολογιστής του καθηγητή που θέλουμε να ελέγχει τους υπόλοιπους του εργαστηρίου client : Οι υπολογιστές των μαθητών

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

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

alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and

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

Πληροφορική 2. Αλγόριθμοι

Δικτυακά Πολυμέσα Ι: 2 η Εργασία. Να δημιουργήσετε μια HTML σελίδα η οποία να περιέχει μία φόρμα που να μοιάζει με αυτή της παρακάτω εικόνας:

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

ΑΣΚΗΣΗ 1. Structural Programming

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

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

Γλωσσική Τεχνολογία. String Handling Regular Expressions

Δυναμικός Κατακερματισμός

Regular Expressions ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Τμήμα Τηλεπληροφορικής & Διοίκησης

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

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

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

Σημειωματάαριο Δευτέρας 16 Οκτ. 2017

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Εισαγωγή στην Ανάπτυξη Εφαρμογών Web με Χρήση της Python, του Apache και του mod_python

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

JOOMLA CMS ΒΑΣΙΚΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ (PART I)

Βάσεις Δεδομένων (Databases)

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

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

Transcript:

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

Γιατί Λεξικά; Στις ακολουθίες (π.χ. λίστες, αλφαριθμητικά) μπορούμε να αναφερόμαστε σε ένα στοιχείο με τον αριθμητικό δείκτη του (π.χ. database[1], s[4]) Κάποιες φορές βολεύει να αναφερόμαστε σε ένα στοιχείο ή να ψάχνουμε ένα στοιχείο με το όνομά του (π.χ. database['john']) Τα λεξικά μας δίνουν αυτή τη δυνατότητα Ανάλογο της χρήσης λεξικού στην καθημερινή μας ζωή 2

Λεξικά Το λεξικό είναι μια συλλογή ζευγών Κάθε ζεύγος περιέχει ένα κλειδί και μια τιμή Χρησιμοποιούμε τα κλειδιά για να ψάξουμε ή να αναφερθούμε στις τιμές π.χ. κλειδί = όνομα λέξης, τιμή = ορισμός λέξης π.χ. κλειδί = όνομα, τιμή = τηλέφωνο >>> phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} >>> phonebook['beth'] '9102' Χρησιμοποιούμε { } για τον ορισμό λεξικού χωρίζει κλειδί από τιμή δεν είμαστε υποχρεωμένοι να εισάγουμε τα κλειδιά σε λεξικογραφική σειρά 3

Μοναδικότητα κλειδιών Τα κλειδιά είναι μοναδικά σε ένα λεξικό δεν μπορεί δύο ζεύγη να έχουν τα ίδια κλειδιά Οι τιμές δεν χρειάζεται να είναι μοναδικές χρήση τελευταίου κλειδιού >>> phonebook = {'Alice': '2341', 'Beth': '9102', 'Beth': '3258 } >>> phonebook {'Beth': '3258', 'Alice': '2341'} >>> phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '9102'} >>> phonebook {'Cecil': '9102', 'Beth': '9102', 'Alice': '2341'} 4

Μετατροπή από Λίστα Η συνάρτηση dict δημιουργεί ένα λεξικό από μια λίστα πλειάδων κάθε πλειάδα είναι ένα ζεύγος-στοιχείο του λεξικού >>> items = [('name', 'Gumby'), ('age', 42)] >>> d = dict(items) >>> d {'age': 42, 'name': 'Gumby'} >>> d['name'] 'Gumby' οι τιμές ενός λεξικού μπορεί να είναι οποιουδήποτε τύπου τα κλειδιά δεν μπορεί να είναι λίστες >>> d = {23:56, 'a':25, 'b':'c', (4,5):'d', 2:[4,5]} 5

Άλλη χρήση της dict() Η συνάρτηση dict μπορεί να πάρει ως είσοδο και μια σειρά από στοιχεία τύπου κλειδί=τιμή >>> d = dict(name='gumby', age=42) >>> d {'age': 42, 'name': 'Gumby'} >>> d2 = dict(23=24124,24=32434) SyntaxError: keyword can't be an expression για κλειδιά τύπου αλφαριθμητικού μόνο! 6

Βασικές λειτουργίες >>> d = dict(name='gumby', age=42) >>> len(d) 2 >>> d['age'] 42 >>> d['something'] Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> d['something'] KeyError: 'something' >>> 'something' in d False Ο αριθμός των κλειδιών στο λεξικό True, αν υπάρχει εγγραφή στο d με κλειδί something 7

Βασικές λειτουργίες >>> d['something']='i don\'t know >>> d['something'] "I don't know" >>> 'something' in d True >>> d['age']=43 >>> d['age'] 43 >>> del d['age'] >>> 'age' in d False εισάγει νέα εγγραφή αν δεν υπάρχει το κλειδί αν υπάρχει το κλειδί, αλλάζει την υπάρχουσα εγγραφή σβήνει μια υπάρχουσα εγγραφή από το λεξικό 8

Ειδικά χαρακτηριστικά Τα κλειδιά πρέπει να είναι μη μεταβαλλόμενου τύπου (δεν μπορεί να είναι λίστες) Όταν ορίζουμε μια τιμή για ένα κλειδί, το ζευγάρι (κλειδί, τιμή) εισάγεται στο λεξικό αν δεν υπάρχει ήδη το κλειδί δεν γίνεται έτσι με τις λίστες >>> lst = ['a','b','c'] >>> lst[3] = 'd' Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> lst[3] = 'd' IndexError: list assignment index out of range 9

Ειδικά χαρακτηριστικά Η εύρεση (π.χ. τελεστής in) γίνεται με βάση το κλειδί Η εύρεση σε μεγάλα λεξικά είναι γρηγορότερη από την εύρεση σε μεγάλες λίστες δεικτοδότηση (indexing) μέσω κατακερματισμού (hashing) Στα λεξικά, τα στοιχεία κλειδιών-τιμών δεν έχουν κάποια συγκεκριμένη σειρά τα λεξικά είναι αταξινόμητα σύνολα, τα στοιχεία των λιστών/πλειάδων είναι σε συγκεκριμένη σειρά 10

Formatting με χρήση λεξικού κλειδί λεξικό >>> phonebook {'Beth': '9102', 'Cecil': '3258', 'Alice': '2341'} >>> "Cecil's phone number is %(Cecil)s." % phonebook "Cecil's phone number is 3258." >>> "Cecil's phone number is %s." % phonebook['cecil'] "Cecil's phone number is 3258." 11

Η μέθοδος clear Καθαρίζει το λεξικό από τα περιεχόμενά του >>> d = {} >>> d['name'] = 'Gumby >>> d['age'] = 42 >>> d {'age': 42, 'name': 'Gumby'} >>> d.clear() >>> d {} 12

Γιατί όχι αρχικοποίηση; >>> x = {} >>> y = x >>> x['key']='value' >>> y {'key': 'value'} >>> x = {} >>> y {'key': 'value'} >>> x = {} >>> y = x >>> x['key']='value' >>> y {'key': 'value'} >>> x.clear() >>> y {} H ανάθεση x={} απλά βάζει το x να δείχνει σε ένα νέο αντικείμενο. Το y συνεχίζει να δείχνει στο παλιό. Η κλήση της clear ζητάει από το αντικείμενο να καθαρίσει τον εαυτό του και άρα επηρεάζει και το x και το y γιατί δείχνουν στο ίδιο αντικείμενο 13

Η μέθοδος copy Αντιγράφει το λεξικό σε ένα άλλο λεξικό ρηχή αντιγραφή: δεν δημιουργεί αντίγραφο των αντικείμενων μέσα στο λεξικό >>> x = {'username': 'admin', 'machines': ['zeus','gaia']} >>> y = x.copy() >>> y['username']='user1' λίστα >>> y['machines'].remove('gaia') (μεταβαλλόμενο αντικείμενο) >>> y {'username': 'user1', 'machines': ['zeus']} >>> x {'username': 'admin', 'machines': ['zeus']} 14

Η μέθοδος copy Αντιγράφει το λεξικό σε ένα άλλο λεξικό ρηχή αντιγραφή: δεν δημιουργεί αντίγραφο των αντικείμενων μέσα στο λεξικό x = {'username': 'admin', 'machines': ['zeus','gaia']} y = x.copy() y['username']='user1' x 'username' 'machines' 'admin' ['zeus','gaia'] y 'username' 'machines' 'user1' y['machines'].remove('gaia') αν αντικαταστήσουμε ένα μη μεταβαλλόμενο αντικείμενο το πρωτότυπο δε μεταβάλλεται αν αλλάξουμε ένα μεταβαλλόμενο, το πρωτότυπο αλλάζει 15

Η συνάρτηση deepcopy Αντιγράφει το λεξικό σε ένα άλλο λεξικό βαθειά αντιγραφή: δημιουργεί αντίγραφο των αντικείμενων μέσα στο λεξικό >>> from copy import deepcopy >>> d = {} >>> d['names'] = ['Alfred', 'Bertrand'] >>> c = d.copy() >>> dc = deepcopy(d) >>> d['names'].append('clive') >>> c {'names': ['Alfred', 'Bertrand', 'Clive']} >>> dc {'names': ['Alfred', 'Bertrand']} 16

Αρχικοποίηση μέσω fromkeys Αρχικοποίηση λεξικού με κλειδιά μόνο >>> dict.fromkeys(['name', 'age']) {'age': None, 'name': None} «τίποτα» >>> dict.fromkeys(['name', 'age'], '(unknown)') {'age': '(unknown)', 'name': '(unknown)'} ειδική τιμή: σημαίνει μια δική μας τιμή για όλα τα κλειδιά 17

Η μέθοδος get Ψάχνει και επιστρέφει μια τιμή με βάση το κλειδί, ενώ επιστρέφει «None» αν το κλειδί δεν υπάρχει >>> d ={'John': '3456'} >>> d['paul'] Traceback (most recent call last): File "<pyshell#145>", line 1, in <module> d['paul'] KeyError: 'Paul >>> print(d.get('paul')) None >>> print(d.get('john')) 3456 ειδική τιμή: σημαίνει «τίποτα» 18

Η μέθοδος get Ψάχνει και επιστρέφει μια τιμή με βάση το κλειδί, ενώ επιστρέφει «None» αν το κλειδί δεν υπάρχει >>> d ={'John': '3456'} >>> print(d.get('paul','n/a')) N/A >>> d = dict.fromkeys(['name', 'age']) >>> print(d.get('name')) None >>> print(d.get('paul','n/a')) N/A >>> print(d.get('name','n/a')) None αντικαθιστά το None, σε περίπτωση που δεν υπαρχει το κλειδί Paul το Paul δεν υπάρχει το name υπάρχει! 19

Ο τελεστής in Δίνει True αν το κλειδί που παίρνει για όρισμα υπάρχει στο λεξικό, αλλίως False >>> d = {} >>> 'name' in d False >>> d['name'] = 'Eric' >>> 'name' in d True 20

Η μέθοδοi items, keys και values items: Επιστρέφει όλα τα ζευγάρια του λεξικού σε μια λίστα (χωρίς κάποια συγκεκριμένη σειρά) keys: Επιστρέφει όλα τα κλειδιά του λεξικού σε μια λίστα (χωρίς κάποια συγκεκριμένη σειρά) values: Επιστρέφει όλες τις τιμές του λεξικού σε μια λίστα (χωρίς κάποια συγκεκριμένη σειρά) >>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} >>> d.items() [('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')] >>> list(d.keys()) ['url', 'title', 'spam'] >>> list(d.values()) ['http://www.python.org', 'Python Web Site', 0] 21

Η μέθοδοι pop και popitem pop: Επιστρέφει την τιμή του κλειδιού που παίρνει σαν όρισμα, μετά σβήνει το αντίστοιχο ζευγάρι popitem: Επιστρέφει οποιοδήποτε ζευγάρι και το σβήνει από το λεξικό >>> d = {'x': 1, 'y': 2, 'z': 2} >>> d.pop('y') 2 >>> d {'x': 1, 'z': 2} >>> d.popitem() ('x', 1) >>> d {'z': 2} 22

Η μέθοδος setdefault Παρόμοια με την get. Αν δε βρει το κλειδί, το εισάγει στο λεξικό με μια τιμή που δίνουμε εμείς >>> d ={'John': '3456'} >>> d.setdefault('paul', 'unknown') 'unknown' >>> d {'Paul': 'unknown', 'John': '3456'} >>> d.setdefault('john', 'unknown') '3456' >>> d {'Paul': 'unknown', 'John': '3456'} το κλειδί Paul δεν υπάρχει: εισάγεται το 'Paul : unknown στο λεξικό το κλειδί John υπάρχει: επιστρέφεται η τιμή του και το λεξικό δεν αλλάζει 23

Η μέθοδος update Εισάγει σε ένα λεξικό τα περιεχόμενα ενός άλλου. Τυχόν υπάρχουντα κλειδιά, ενημερώνονται. >>> d ={'John': '3456', 'Paul': '9123'} >>> t ={'Paul': '1234', 'Sue': '2014'} >>> d.update(t) >>> d {'Sue': '2014', 'Paul': '1234', 'John': '3456'} η τιμή του Paul αντικαθίσταται 24

Άσκηση Έχω ένα πλέγμα πάνω στο οποίο κινούνται κάποια άτομα. Θέλω να αποθηκεύσω αυτή την πληροφορία σε ένα λεξικό. Πως θα φτιάξω το λεξικό αν θέλω τα κλειδιά να είναι τα ονόματα των ατόμων? Πως θα φτιάξω το λεξικό αν θέλω τα κλειδιά να είναι οι συντεταγμένες? 3 bob 2 1 alice tom jerry 1 2 3