ΕΙΣΑΓΩΓΗ
Στο σημερινό
δωρεάν μάθημα Python θα
αναλύσουμε τα Dictionaries τα οποία μας προσφέρουν μια πιο
αναλυτική μορφή ομαδοποίησης των δεδομένων μας. Αυτή είναι ακόμα μια επιλογή
που μας προσφέρει η Python μέσα από τη γενικότερη κατηγορία των Data Structures.
WHAT IS THE DIFFERENCE BETWEEN A LIST AND A DICTIONARY
Τα Lists, όπως τα είδαμε σε προηγούμενα
δωρεάν μαθήματα Python, θεωρούνται ordered collections γιατί κάθε στοιχείο της λίστας
αποθηκεύεται αμέσως μετά από το προηγούμενο. Αυτή η σειρά που υπάρχει στα
δεδομένα μας αναγκάζει να
χρησιμοποιήσουμε index για να καλέσουμε και να διαχειριστούμε τα αποθηκευμένα στοιχεία.
Το Dictionary, από την άλλη πλευρά, δεν
χρησιμοποιεί index αλλά
το συνδυασμό key-value. Αυτό σημαίνει ότι δεν υπάρχει καμία
σημασία στη σειρά που αποθηκεύονται τα δεδομένα για αυτό και άλλωστε δεν είναι
διαθέσιμο κάποιο index. Αυτό που μας ενδιαφέρει είναι ότι καλώντας το key μπορούμε να λάβουμε το value το οποίο αντιπροσωπεύει.
Επίσης μια πιο πρακτική διαφορά είναι ότι τα
δεδομένα σε ένα list πρέπει να είναι όλα ομαδοποιημένα με μια κοινή λογική. Δηλαδή το παρακάτω
list περιέχει μόνο ομάδες ποδοσφαίρου.
premier = [‘Arsenal’,
‘Chelsea’, ‘Everton’]
Όμως δεν
είναι τόσο ξεκάθαρο τι αντιπροσωπεύει κάθε element όταν ομαδοποιούμε διαφορετικών ειδών elements όπως δείχνει το παρακάτω παράδειγμα.
employee = [‘Michail’,
‘training’, ‘Kassapoglou’, ‘Jonathan’]
Βλέποντας το
παραπάνω list θα
αναρωτιέστε ποιο είναι το όνομα του εργαζόμενου, ποιο είναι το επίθετο του,
ποιο είναι το όνομα του manager του κτλ. Αυτή λοιπόν την έλλειψη καλύτερης οργάνωσης έρχεται
να καλύψει το Dictionary.
Τα Dictionaries είναι πολύ χρήσιμα όταν
χρησιμοποιούμε ένα πολύ μεγάλο μέγεθος δεδομένων προς ανάλυση, όταν στέλνουμε
και λαμβάνουμε δεδομένα και γενικότερα όταν δημιουργούμε APIs.
HOW TO CREATE A DICTIONARY
Για να
δημιουργήσουμε ένα Dictionary θα πρέπει να χρησιμοποιήσουμε curly brackets ( { } ). Ανάμεσα
στα curly brackets ορίζουμε τις ομάδες των key-value ζευγαριών.
Για να
αποθηκεύσουμε μια τιμή σε ένα Dictionary, πρέπει να ορίσουμε δύο τιμές: ένα
κλειδί (key) με το οποίο θα μπορούμε να βρούμε
την πληροφορία, και μια τιμή (value) που είναι η πληροφορία ή το
δεδομένο που θέλουμε να αποθηκεύσουμε. Για να μπορέσουμε να βρούμε το value θα πρέπει να καλέσουμε το αντίστοιχο
του key.
Ας δούμε ένα
απλό παράδειγμα ορισμούς ενός Dictionary.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou','department': 'Training'}print(employee)
Output
Στο παραπάνω παράδειγμα τα keys είναι το first_name, last_name και department ενώ τα values είναι το Michail, Kassapoglou, και Training. Για παράδειγμα, για να λάβουμε πίσω
την τιμή Training θα
πρέπει να καλέσουμε το κλειδί department.
Τα keys μπορούν να είναι μόνο είδος String και Numbers, ενώ τα values μπορεί να είναι
όλων των ειδών τα data types ακόμα και lists αλλά και dictionaries.
Τέλος,
υπάρχει ένα colon ( : ) που χωρίζει
την δήλωση του key από
το value, ενώ κάθε
στοιχείο από το επόμενο χωρίζεται με comma (
, ).
ACCESSING DICTIONARY INFORMATION
Στο προηγούμενο
παράδειγμα, απλά τυπώσαμε όλο το Dictionary στο terminal. Αυτή είναι μια συνηθισμένη πράξη
για να λάβουμε γνώση των δεδομένων που περιέχει ένα Dictionary. Αφού γνωρίζουμε τα δεδομένα που
περιέχει το Dictionary, σαν επόμενο βήμα είναι να λάβουμε μια συγκεκριμένη
πληροφορία από αυτό όπως για παράδειγμα το όνομα του εργαζόμενου. Για να το
καταφέρουμε αυτό πρέπει να γράψουμε το όνομα του Dictionary και
αμέσως μετά μέσα σε square brackets( [ ] ) το
όνομα του key.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou','department': 'Training'}print(employee['first_name'])print(f"The employee's first name is {employee['first_name']}")
Output
GET METHOD
Η Python μας προσφέρει και ένα δεύτερο τρόπο
για να λάβουμε την τιμή κάποιου value και αυτός υλοποιείται με την χρήση της get( ) μεθόδου που προσφέρεται από το ίδιο
το Dictionary.
Η διαφορά με
το προηγούμενο τρόπο είναι ότι αν μέσα στο get( ) αναζητήσουμε κάποιο key το οποίο δεν υπάρχει, το πρόγραμμα μας
δεν θα σταματήσει. Δηλαδή δεν θα πάρουμε ένα exception. Απλά η Python θα μας δώσει None σαν απάντηση στο συγκεκριμένο αίτημα.
Επίσης μπορούμε να προσθέσουμε και ένα δικό μας μήνυμα σε περίπτωση που δεν
βρεθεί το κλειδί που αναζητάμε.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou','department': 'Training'}print(employee.get('first_name', 'There is no first name key'))print(employee.get('id', 'This employee has no company ID yet'))
Output
ADDING LISTS TO DICTIONARIES
Όπως αναφέραμε
στην αρχή αυτού του δωρεάν μαθήματος Python, τα Dictionaries μπορούν να συνδυαστούν και με άλλα collections όπως lists. Αυτή η
ευελιξία που έχουν, κάνει τα Dictionaries να είναι ένα από τα αγαπημένα collections ανάμεσα στους προγραμματιστές. Ας δούμε
ένα απλό παράδειγμα, όπου περνάμε ένα list σαν value σε ένα Dictionary.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou','department': 'Training','specialization': ['Python', 'Spring', 'Dart', 'Java']}print(employee['specialization'][0])
Output
ADDING DICTIONARIES TO DICTIONARIES
Όπως έχουμε την
δυνατότητα να προσθέσουμε lists σε ένα dictionary, έτσι μπορούμε και να προσθέσουμε
και ένα dictionary σε ένα άλλο dictionary. Ας δούμε ένα απλό παράδειγμα για το πώς μπορούμε όχι μόνο να
το υλοποιήσουμε αυτό αλλά και να πάρουμε και πληροφορίες από το εσωτερικό dictionary.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou','department': 'Training','specialization': {'Python': 'FastAPI', 'Spring': 'Spring Boot'}}print(employee['specialization']['Python'])
Output
FastAPI
ADDING NEW INFORMATION TO A DICTIONARY
Κάθε
προγραμματιστής, κάποια στιγμή κατά τη διάρκεια ανάπτυξης κώδικα, θα χρειαστεί
όχι μόνο να έχει πρόσβαση στα δεδομένα ενός Dictionary αλλά και να προσθέσει καινούργια
στοιχεία σε αυτό.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}employee['department'] = 'Training'print(employee)
Output
{'first_name': 'Michail', 'last_name': 'Kassapoglou', 'department': 'Training'}
UPDATING INFORMATION IN A DICTIONARY
Για να αλλάξουμε
μια υπάρχουσα τιμή, ακολουθούμε ακριβώς τα ίδια βήματα όπως και στο προηγούμενο
παράδειγμα – δηλαδή προσθέτουμε ένα καινούργιο ζευγάρι key-value. Εάν το key υπάρχει ήδη τότε θα αντικατασταθεί το
value με αυτό που προτείνουμε, ενώ αν δεν
υπάρχει το key τότε θα δημιουργηθεί ένα καινούργιο key-value ζευγάρι στο Dictionary.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}employee['specialization'] = 'Python'print(employee)employee['specialization'] = 'FastAPI'print(employee)
Output
DELETING INFORMATION FROM A DICTIONARY
Για να διαγράψουμε
ένα συγκεκριμένο key-value από ένα Dictionary χρησιμοποιούμε την μέθοδο del( ).
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}employee['specialization'] = 'Python'print(employee)employee['specialization'] = 'FastAPI'print(employee)del employee['specialization']print(employee)
Output
Αν και η del( ) μας δίνει την δυνατότητα
διαγραφής στοιχείων από ένα Dictionary, θα ήταν καλύτερα να χρησιμοποιούσαμε
μεθόδους του ίδιου του Dictionary. Η μέθοδος pop( ) του Dictionary μας επιτρέπει να εκτελέσουμε την
πράξη διαγραφής στοιχείων.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}employee['specialization'] = 'Python'print(employee)employee.pop('specialization')print(employee)
Output
LOOPING FOR KEYS, VALUES OR KEY_VALUE-PAIRS
Επειδή τα Dictionaries συνήθως περιέχουν πάρα πολλά
στοιχεία, για να μπορέσουμε να αποκτήσουμε μια γρήγορη εικόνα τους προγραμματιστικά
χρησιμοποιούμε loops. Μπορούμε να χρησιμοποιήσουμε ένα for loop για να δούμε μόνο τα keys, ή μόνο τα values ή ολόκληρο το ζευγάρι key-value.
Για να
μπορέσουμε να λάβουμε μια λίστα με όλα τα keys ενός Dictionary, χρησιμοποιούμε την μέθοδο keys( ) μέσα σε ένα for loop.
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}for key in employee.keys():print(key)print(employee[key])
Output
Αν τώρα
επιθυμούμε να δούμε μόνο τα values, τότε μπορούμε να χρησιμοποιήσουμε
την μέθοδο values( ).
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}for value in employee.values():print(value)
Output
Τέλος, αν
επιθυμείτε να δείτε και τα keys με τα αντίστοιχα τους values τότε μπορείτε να χρησιμοποιήσετε την μέθοδο items( ).
app.py
employee = {'first_name': 'Michail','last_name': 'Kassapoglou'}for key, value in employee.items():print(f"The key is {key} and the value is {value}")
Output
USING IN WITH DICTIONARIES
Μπορούμε επίσης
να χρησιμοποιήσουμε ένα dictionary σε ένα if statement για να ελέγξουμε αν υπάρχει κάποια
τιμή την οποία ψάχνουμε.
app.py
employee = { 'first_name': 'Michail', 'last_name': 'Kassapoglou'}
if 'first_name' in employee: print(f"The employee has a name {employee['first_name']}")
Output
The employee has a name Michail
Στο σημερινό
δωρεάν μάθημα Python αναλύσουμε
αρκετές από τις μεθόδους που μας προσφέρει το Dictionary. Μπορείτε μόνοι σας να εξερευνήσετε τις
υπόλοιπες όπως το popitem( ), clear( ) και copy( ).
Μην ξεχάσετε
να κάνετε ένα μικρό donationέτσι ώστε αυτό το siteνα μεγαλώσει ακόμα πιο πολύ
και να αποκτήσει περισσότερες δυνατότητες onlineπαράδοσης δωρεάν μαθημάτων.
full-width
0 Comments
Η γνώμη σας είναι σημαντική.