• Καλώς ήρθατε στο Λογισμικό, κωδικοποίηση και τεχνολογία.
 

Εισαγωγή στις Λειτουργίες Λεξικών στην Python

Ξίνηε από Erhac, Απρ 10, 2025, 01:24 ΜΜ

« προηγούενο - εόμνο »

Erhac


Τα λεξικά (dictionaries) στην Python είναι μια από τις πιο ευέλικτες και ισχυρές δομές δεδομένων. Χρησιμοποιούν ζεύγη κλειδιού-τιμής (key-value) για την αποθήκευση δεδομένων, επιτρέποντας γρήγορη πρόσβαση και επεξεργασία. Σε αυτό το άρθρο, θα εξετάσουμε τις βασικές λειτουργίες (methods) των λεξικών, με παραδείγματα κώδικα και απαντήσεις σε συχνές ερωτήσεις.

Βασικές Λειτουργίες Λεξικών
Η Python παρέχει πολλές ενσωματωμένες μεθόδους για τη διαχείριση λεξικών. Ας δούμε τις πιο σημαντικές:

1. get() - Ανάκτηση Τιμής
Επιστρέφει την τιμή ενός κλειδιού ή μια προεπιλεγμένη τιμή αν το κλειδί δεν υπάρχει.
Κώδικας [Επιογή]
# Παράδειγμα
student = {"όνομα": "Γιάννης", "ηλικία": 20}
print(student.get("όνομα"))  # Έξοδος: Γιάννης
print(student.get("βαθμός", "Δεν υπάρχει"))  # Έξοδος: Δεν υπάρχει

2. keys() - Λίστα Κλειδιών
Επιστρέφει όλα τα κλειδιά του λεξικού.
Κώδικας [Επιογή]
# Παράδειγμα
car = {"μάρκα": "Toyota", "μοντέλο": "Corolla", "χρώμα": "Μπλε"}
print(car.keys())  # Έξοδος: dict_keys(['μάρκα', 'μοντέλο', 'χρώμα'])

3. values() - Λίστα Τιμών
Επιστρέφει όλες τις τιμές του λεξικού.
Κώδικας [Επιογή]
# Παράδειγμα
print(car.values())  # Έξοδος: dict_values(['Toyota', 'Corolla', 'Μπλε'])

4. items() - Ζεύγη Κλειδιού-Τιμής
Επιστρέφει μια λίστα με tuples που περιέχουν τα ζεύγη κλειδιού-τιμής.
Κώδικας [Επιογή]
# Παράδειγμα
print(car.items())  # Έξοδος: dict_items([('μάρκα', 'Toyota'), ('μοντέλο', 'Corolla'), ('χρώμα', 'Μπλε')])

5. update() - Ενημέρωση Λεξικού
Προσθέτει ή ενημερώνει ζεύγη κλειδιού-τιμής από ένα άλλο λεξικό ή iterable.
Κώδικας [Επιογή]
# Παράδειγμα
person = {"όνομα": "Μαρία"}
new_data = {"ηλικία": 25, "πόλη": "Αθήνα"}
person.update(new_data)
print(person)  # Έξοδος: {'όνομα': 'Μαρία', 'ηλικία': 25, 'πόλη': 'Αθήνα'}

6. pop() - Αφαίρεση Κλειδιού
Αφαιρεί ένα κλειδί και επιστρέφει την τιμή του.
Κώδικας [Επιογή]
# Παράδειγμα
fruits = {"μήλο": 5, "μπανάνα": 3}
apple_count = fruits.pop("μήλο")
print(apple_count)  # Έξοδος: 5
print(fruits)  # Έξοδος: {'μπανάνα': 3}


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

Κώδικας [Επιογή]
# Δημιουργία λεξικού αποθέματος
inventory = {
    "προϊόν1": {"όνομα": "Ψωμί", "ποσότητα": 50, "τιμή": 1.20},
    "προϊόν2": {"όνομα": "Γάλα", "ποσότητα": 30, "τιμή": 0.90}
}

# Εμφάνιση όλων των κλειδιών (προϊόντων)
print("Προϊόντα στην αποθήκη:", list(inventory.keys()))

# Πρόσθεση νέου προϊόντος
new_item = {"προϊόν3": {"όνομα": "Αυγά", "ποσότητα": 100, "τιμή": 0.15}}
inventory.update(new_item)

# Εμφάνιση όλων των ονομάτων προϊόντων
names = [item["όνομα"] for item in inventory.values()]
print("Ονόματα προϊόντων:", names)

# Αφαίρεση προϊόντος
removed_item = inventory.pop("προϊόν1")
print("Αφαιρέθηκε:", removed_item)

# Τελικό απόθεμα
print("Τελικό απόθεμα:", inventory)

Έξοδος:
Κώδικας [Επιογή]
Προϊόντα στην αποθήκη: ['προϊόν1', 'προϊόν2']
Ονόματα προϊόντων: ['Ψωμί', 'Γάλα', 'Αυγά']
Αφαιρέθηκε: {'όνομα': 'Ψωμί', 'ποσότητα': 50, 'τιμή': 1.2}
Τελικό απόθεμα: {'προϊόν2': {'όνομα': 'Γάλα', 'ποσότητα': 30, 'τιμή': 0.9}, 'προϊόν3': {'όνομα': 'Αυγά', 'ποσότητα': 100, 'τιμή': 0.15}}


FAQs (Συχνές Ερωτήσεις)
1. Τι είναι ένα λεξικό στην Python;
Ένα λεξικό είναι μια δομή δεδομένων που αποθηκεύει ζεύγη κλειδιού-τιμής. Τα κλειδιά πρέπει να είναι μοναδικά και αμετάβλητα (π.χ. strings, numbers), ενώ οι τιμές μπορούν να είναι οποιουδήποτε τύπου.

2. Ποια είναι η διαφορά μεταξύ get() και της απευθείας πρόσβασης με κλειδί;
Η μέθοδος get() επιτρέπει τη χρήση προεπιλεγμένης τιμής αν το κλειδί δεν υπάρχει, ενώ η απευθείας πρόσβαση (dict[key]) προκαλεί KeyError.

3. Μπορώ να χρησιμοποιήσω λίστες ως κλειδιά;
Όχι, οι λίστες είναι μεταβλητές και δεν μπορούν να χρησιμοποιηθούν ως κλειδιά. Ωστόσο, μπορούν να είναι τιμές.

4. Πώς μπορώ να ελέγξω αν ένα κλειδί υπάρχει σε ένα λεξικό;
Χρησιμοποιήστε τον τελεστή in. Παράδειγμα: "όνομα" in student επιστρέφει True αν το κλειδί υπάρχει.

5. Ποια είναι η πιο αποδοτική μέθοδος για την ενημέρωση πολλών στοιχείων;
Η μέθοδος update() είναι η πιο αποδοτική, καθώς μπορεί να ενημερώσει πολλαπλά ζεύγη κλειδιού-τιμής με μία κλήση.

Συμπέρασμα
Τα λεξικά στην Python, μαζί με τις λειτουργίες τους, προσφέρουν έναν ισχυρό τρόπο για τη διαχείριση δεδομένων. Είτε χρειάζεστε γρήγορη πρόσβαση σε πληροφορίες είτε δυναμική ενημέρωση, οι μέθοδοι όπως get(), items(), και update() σας δίνουν τη δυνατότητα να χειριστείτε τα δεδομένα σας αποτελεσματικά. Δοκιμάστε τα παραδείγματα και προσαρμόστε τα στις δικές σας εφαρμογές!