Τα λεξικά είναι μία ακόμα δομή δεδομένων την οποία παρέχει η python. Μπορεί να την φανταστεί κανείς σε αναλογία με τα γνωστά λεξικά, όπου γνωρίζοντας μία λέξη-κλειδί (key) οδηγούμαστε σε μία πληροφορία. Ένας λεξικό αποτελείται από μία σειρά λέξεις-κλειδιά (keys) το καθένα από τα οποία συνδέεται με μία πληροφορία (object). Κάθε εγγραφή στο λεξικό είναι της μορφής
key: object
Ένα λεξικό ορίζεται με τη βοήθεια αγκίστων {}, ανάμεσα στα οποία βάζουμε όλες τις εγγραφές. Μπορούμε να βρούμε μία εγγραφή δίνοντας την αντίστοιχη λέξη-κλειδί σε ορθογώνιες παρενθέσεις.
D = {"Mihalis": 48, "Manolis": 50, "Nikos": 12}
D["Nikos"] += 2
print(D["Nikos"])
print(D)
Μπορούμε να προσθέσουμε εγγραφές στο λεξικό.
>>> D = {"Mihalis": 48, "Manolis": 50, "Nikos": 12}
>>> name = input("Give name: ")
Give name: Yannis
>>> if name not in age: D[name] = 55
>>> print(D)
{'Mihalis': 48, 'Manolis': 50, 'Nikos': 12, 'Yannis': 55}
Μπορούμε να σβήσουμε εγγραφές από το λεξικό.
>>> name = input("Give name: ")
Give name: Nikos
>>> if name in D: del D[name]
>>> print(D)
{'Mihalis': 48, 'Manolis': 50, 'Yannis': 55}
Μπορούμε να διατρέξουμε ένα λεξικό με επανάληψη for
.
>>> D = {'Mihalis': 48, 'Manolis': 50, 'Nikos': 12, 'Yannis': 55}
>>> for key in D:
... print("The age of",key,"is",D[key])
...
The age of Mihalis is 48
The age of Manolis is 50
The age of Nikos is 12
The age of Yannis is 55
Θα κατασκευάσουμε ένα λεξικό D στο οποίο οι λέξεις-κλειδιά θα είναι τα μοναδικά στοιχεία της L. Για κάθε λέξη-κλειδί θα βρούμε πόσες φορές αυτό εμφανίζεται στην L.
L = [1, 1, 2, 3, 2, 1, -1, 5, 5, 10, 1, 2, -1]
D = {} # Ξεκινάμε ένα λεξικό D (αρχικά κενό).
for key in L:
if key in D: # Αν υπάρχει ήδη ως λέξη-κλειδί στο D τότε το έχουμε ξαναδεί
D[key] += 1 # και έχουμε μια παραπάνω εμφάνιση για το key
else:
D[key] = 1 # Είναι η πρώτη φορά που το βλέπουμε.
print(D) # Τυπώνουμε το λεξικό απλά
for key in D: # Τυπώνουμε το λεξικό συστηματικά
print(key,D[key])
Παρατήρηση: Μπορούμε να αναζητήσουμε εγγραφές στο λεξικό με την εντολή if key in D.keys()
είτε και με την if key in D
.
len(D)
: γίνει το αριθμό των εγγραφών.str(D)
: δίνει όλο το λεξικό σε μία συμβολοσειρά.del D
: σβήνει το D.del D[key]
: σβήνει την εγγραφή με λέξη-κλειδί key
από το D.H = D.copy()
: αντιγράφει το D στο H.D.update({key: object})
: προσθέτει εγγραφή στο D.D.keys()
: οι λέξεις-κλειδιά του D.