6.8 Μέθοδοι στα λεξικά στην Python

Τα λεξικά στην Python παρέχουν διάφορες μεθόδους που μπορείτε να χρησιμοποιήσετε για να εργαστείτε με αυτά. Παρακάτω παραθέτονται μερικές από τις πιο συχνά χρησιμοποιούμενες μεθόδους:

  • keys(): Επιστρέφει μια λίστα με όλα τα κλειδιά του λεξικού.
  • values(): Επιστρέφει μια λίστα με όλες τις τιμές του λεξικού.
  • items(): Επιστρέφει μια λίστα με ζευγάρια κλειδιού-τιμής, ως τα αντίστοιχα στοιχεία.
  • get(key): Επιστρέφει την τιμή που αντιστοιχεί στο συγκεκριμένο κλειδί. Εάν το κλειδί δεν υπάρχει, επιστρέφει μια προεπιλεγμένη τιμή ή None.
  • update(other_dict): Συνενώνει το λεξικό με ένα άλλο λεξικό ή με μια λίστα από ζευγάρια κλειδιού-τιμής, ανανεώνοντας ή προσθέτοντας τα κλειδιά και τις αντίστοιχες τιμές.
  • pop(key): Αφαιρεί και επιστρέφει την τιμή που αντιστοιχεί στο συγκεκριμένο κλειδί.
  • popitem(): Αφαιρεί και επιστρέφει ένα τυχαίο ζευγάρι κλειδιού-τιμής από το λεξικό.

Η μέθοδος clear() χρησιμοποιείται για να αφαιρέσει όλα τα στοιχεία από ένα λεξικό. Αφού καλεστεί η μέθοδος clear(), το λεξικό γίνεται άδειο, δηλαδή δεν περιέχει πλέον κανένα ζευγάρι κλειδιού-τιμής.

Παράδειγμα:

my_dict = {"name": "John", "age": 30, "city": "New York"}
print(my_dict)  # Εκτυπώνει: {'name': 'John', 'age': 30, 'city': 'New York'}

my_dict.clear()
print(my_dict)  # Εκτυπώνει: {}

Στο παραπάνω παράδειγμα, αρχικά το λεξικό my_dict περιέχει τρία ζευγάρια κλειδιού-τιμής. Αφού καλέσουμε τη μέθοδο clear(), το λεξικό αδειάζει και εκτυπώνεται ως ένα άδειο λεξικό {}.

Αν θέλετε να δημιουργήσετε ένα αντίγραφο ενός λεξικού, μπορείτε να χρησιμοποιήσετε τη μέθοδο copy(). Αντίγραφο του λεξικού δημιουργείται αντιγράφοντας τα ζευγάρια κλειδιού-τιμής από το αρχικό λεξικό σε ένα νέο λεξικό.

Παράδειγμα χρήσης της μεθόδου copy():

my_dict = {"name": "John", "age": 30, "city": "New York"}

# Δημιουργία αντιγράφου του λεξικού
copy_dict = my_dict.copy()

# Εκτύπωση του αρχικού λεξικού και του αντιγράφου
print(my_dict)      # Εκτυπώνει: {"name": "John", "age": 30, "city": "New York"}
print(copy_dict)    # Εκτυπώνει: {"name": "John", "age": 30, "city": "New York"}

Όπως μπορείτε να δείτε, το copy_dict είναι ένα αντίγραφο του αρχικού λεξικού my_dict. Οποιαδήποτε αλλαγή πραγματοποιηθεί στο copy_dict δεν επηρεάζει το αρχικό λεξικό.

[adinserter block=”2″]

Η μέθοδος fromkeys(keys, value) δημιουργεί ένα νέο λεξικό χρησιμοποιώντας τα κλειδιά που παρέχονται και την τιμή που ορίζεται. Αν δεν οριστεί τιμή, η προεπιλεγμένη τιμή για κάθε κλειδί είναι None.

# Δημιουργία νέου λεξικού με τη μέθοδο fromkeys()
keys = ("key1", "key2", "key3")
value = 0
new_dict = dict.fromkeys(keys, value)

Ο παραπάνω κώδικας δημιουργεί ένα νέο λεξικό με τη χρήση της μεθόδου fromkeys(). Η μέθοδος fromkeys() δημιουργεί ένα νέο λεξικό όπου τα κλειδιά προέρχονται από μια ακολουθία (στην περίπτωση αυτή, το tuple keys), και οι αντίστοιχες τιμές είναι ίσες με την τιμή που ορίζεται (στην περίπτωση αυτή, η μεταβλητή value που έχει την τιμή 0).

Έτσι, το αποτέλεσμα είναι ένα νέο λεξικό new_dict με τα κλειδιά “key1”, “key2” και “key3”, και όλες τις τιμές να είναι ίσες με το 0.

Η μέθοδος get(key, default) χρησιμοποιείται για να ανακτήσετε την τιμή ενός κλειδιού από ένα λεξικό. Παίρνει δύο παραμέτρους: το κλειδί που αναζητάτε και μια προεπιλεγμένη τιμή που θα επιστραφεί αν το κλειδί δεν υπάρχει στο λεξικό. Αν το κλειδί βρίσκεται στο λεξικό, η μέθοδος επιστρέφει την αντίστοιχη τιμή. Αν το κλειδί δεν υπάρχει, τότε επιστρέφεται η προεπιλεγμένη τιμή που ορίζεται.

Παράδειγμα:

my_dict = {"apple": 2, "banana": 3, "cherry": 5}
value = my_dict.get("banana", 0)
print(value)  # Εκτυπώνει 3

value = my_dict.get("orange", 0)
print(value)  # Εκτυπώνει 0

Στο παραπάνω παράδειγμα, η μέθοδος get() χρησιμοποιείται για να ανακτήσει τιμές από το λεξικό my_dict. Στην πρώτη περίπτωση, το κλειδί “banana” υπάρχει στο λεξικό και επιστρέφεται η τιμή 3. Στη δεύτερη περίπτωση, το κλειδί “orange” δεν υπάρχει στο λεξικό και επιστρέφεται η προεπιλεγμένη τιμή 0.

Η μέθοδος items() επιστρέφει ένα αντικείμενο που περιέχει ζεύγη κλειδιού-τιμής από ένα λεξικό.

Μπορούμε να χρησιμοποιήσουμε τη μέθοδο items() για να επιστρέψουμε τα ζεύγη κλειδιού-τιμής του λεξικού. Ας δούμε ένα παράδειγμα:

my_dict = {"apple": 2, "banana": 3, "cherry": 5}

# Χρησιμοποιούμε τη μέθοδο items() για να προσπελάσουμε τα ζεύγη κλειδιού-τιμής του λεξικού
# Κάθε ζεύγος ανατίθεται στις μεταβλητές key και value
# Οι μεταβλητές key και value αναπαριστούν το κλειδί και την αντίστοιχη τιμή του λεξικού

for key, value in my_dict.items():
    # Εκτυπώνουμε το κλειδί και την τιμή για κάθε ζεύγος
    print(key, value)

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

Η μέθοδος keys() επιστρέφει ένα αντικείμενο που περιέχει τα κλειδιά του λεξικού.

Μπορούμε να χρησιμοποιήσουμε τη μέθοδο keys() για να επιστρέψουμε ένα αντικείμενο που περιέχει τα κλειδιά του λεξικού:

my_dict = {"apple": 2, "banana": 3, "cherry": 5}

# Χρησιμοποιούμε τη μέθοδο keys() για να επιστρέψουμε τα κλειδιά του λεξικού
key_list = my_dict.keys()

# Εκτύπωση του αντικειμένου key_list
print(key_list) #dict_keys(['apple', 'banana', 'cherry'])

Ο παραπάνω κώδικας δημιουργεί ένα λεξικό my_dict με τρία ζευγάρια κλειδιών-τιμών. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο keys() για να ανακτήσουμε τα κλειδιά του λεξικού. Το αποτέλεσμα αποθηκεύεται στη μεταβλητή key_list. Τέλος, εκτυπώνουμε το περιεχόμενο της μεταβλητής key_list, που περιέχει τα κλειδιά του λεξικού.

[adinserter block=”3″]

Το αντικείμενο dict_keys είναι μια ειδική τύπου αντικειμένου που παρέχει την πρόσβαση στα κλειδιά του λεξικού. Μπορείτε να το μετατρέψετε σε λίστα αν χρειάζεται, χρησιμοποιώντας την list(key_list).

Η μέθοδος pop(key, default) στο λεξικό αφαιρεί το στοιχείο με το κλειδί που ορίζεται και επιστρέφει την τιμή του. Εάν το κλειδί υπάρχει στο λεξικό, τότε αφαιρείται το στοιχείο και επιστρέφεται η αντίστοιχη τιμή. Εάν το κλειδί δεν υπάρχει, τότε επιστρέφεται η προεπιλεγμένη τιμή που ορίζεται ως δεύτερη παράμετρος (default). Αν δεν παρέχεται προεπιλεγμένη τιμή και το κλειδί δεν υπάρχει στο λεξικό, τότε προκαλείται ένα σφάλμα KeyError.

Ας υποθέσουμε ότι έχουμε το παρακάτω λεξικό:

my_dict = {"apple": 2, "banana": 3, "cherry": 5}

Παράδειγμα 1: Χρήση της μεθόδου pop() για να αφαιρέσουμε ένα στοιχείο με καθορισμένο κλειδί και να επιστρέψουμε την τιμή του:

value = my_dict.pop("banana")
print(value)  # Εκτυπώνει: 3
print(my_dict)  # Εκτυπώνει: {"apple": 2, "cherry": 5}

Παράδειγμα 2: Χρήση της μεθόδου pop() με προεπιλεγμένη τιμή για ένα κλειδί που δεν υπάρχει στο λεξικό:

value = my_dict.pop("orange", 0)
print(value)  # Εκτυπώνει: 0 (προεπιλεγμένη τιμή)
print(my_dict)  # Εκτυπώνει: {"apple": 2, "banana": 3, "cherry": 5}

Παράδειγμα 3: Χρήση της μεθόδου pop() για ένα κλειδί που δεν υπάρχει στο λεξικό και χωρίς προεπιλεγμένη τιμή:

value = my_dict.pop("orange")
# Προκαλείται KeyError: 'orange'

Σε αυτήν την περίπτωση, επειδή το κλειδί “orange” δεν υπάρχει στο λεξικό και δεν παρέχεται προεπιλεγμένη τιμή, προκαλείται ένα σφάλμα KeyError.

Η μέθοδος popitem() αφαιρεί και επιστρέφει το τελευταίο ζευγάρι κλειδιού-τιμής που προστέθηκε σε ένα λεξικό. Εάν το λεξικό είναι άδειο, τότε εκτελείται ένα KeyError.

Ας δούμε ένα παράδειγμα χρήσης της μεθόδου popitem():

my_dict = {"apple": 2, "banana": 3, "cherry": 5}

# Αφαιρούμε και επιστρέφουμε το τελευταίο ζευγάρι κλειδιού-τιμής
last_item = my_dict.popitem()

print(last_item)  # Εκτύπωση του τελευταίου ζευγαριού κλειδιού-τιμής
print(my_dict)  # Εκτύπωση του λεξικού μετά την αφαίρεση

Το παραπάνω πρόγραμμα θα εκτυπώσει:

('cherry', 5)
{'apple': 2, 'banana': 3}

Η μέθοδος popitem() αφαίρει το τελευταίο ζευγάρι κλειδιού-τιμής από το λεξικό και το επιστρέφει ως μια διφορούμενη (tuple) τιμή. Στο παράδειγμα παραπάνω, το τελευταίο ζευγάρι κλειδιού-τιμής είναι ('cherry', 5). Έπειτα, το λεξικό μειώνεται κατά ένα στοιχείο καθώς έχει αφαιρεθεί το τελευταίο ζευγάρι.

Η μέθοδος setdefault(key, default) χρησιμοποιείται για να ανακτήσετε την τιμή ενός κλειδιού από ένα λεξικό. Αν το κλειδί υπάρχει, η μέθοδος επιστρέφει την αντίστοιχη τιμή. Αν το κλειδί δεν υπάρχει, προσθέτει το κλειδί στο λεξικό με την προεπιλεγμένη τιμή που ορίζεται και επιστρέφει αυτήν την τιμή.

Παράδειγμα χρήσης:

my_dict = {"apple": 2, "banana": 3}
value = my_dict.setdefault("orange", 0)
print(my_dict)  # Εκτυπώνει: {'apple': 2, 'banana': 3, 'orange': 0}
print(value)  # Εκτυπώνει: 0

Στο παραπάνω παράδειγμα, το κλειδί “orange” δεν υπάρχει στο λεξικό my_dict, οπότε προστίθεται με την προεπιλεγμένη τιμή 0. Η μέθοδος setdefault() επιστρέφει αυτήν την τιμή και το λεξικό τροποποιείται αντίστοιχα.

Η μέθοδος update(other) προσθέτει τα στοιχεία ενός άλλου λεξικού (ή άλλου αντικειμένου με ζευγάρια κλειδιού-τιμής) στο λεξικό. Αν υπάρχουν ήδη τα κλειδιά στο λεξικό, οι τιμές τους ενημερώνονται με τις αντίστοιχες τιμές του άλλου λεξικού.

dict1 = {"apple": 2, "banana": 3, "cherry": 5}  # Δημιουργία του πρώτου λεξικού με κλειδιά και τιμές
dict2 = {"banana": 1, "orange": 4}  # Δημιουργία του δεύτερου λεξικού με κλειδιά και τιμές

dict1.update(dict2)  # Ενημέρωση του πρώτου λεξικού με τα στοιχεία του δεύτερου λεξικού

print(dict1)  # Εκτύπωση του ενημερωμένου πρώτου λεξικού - {"apple": 2, "banana": 1, "cherry": 5, "orange": 4}

Στο παράδειγμα αυτό, το πρώτο λεξικό (dict1) περιέχει αρχικά τα κλειδιά “apple”, “banana” και “cherry” με τις αντίστοιχες τιμές τους. Το δεύτερο λεξικό (dict2) περιέχει τα κλειδιά “banana” και “orange” με τις αντίστοιχες τιμές τους. Η μέθοδος update() καλείται στο dict1 και περνάμε το dict2 ως όρισμα, επιτρέποντας την ενημέρωση του πρώτου λεξικού με τα στοιχεία του δεύτερου λεξικού. Ως αποτέλεσμα, το dict1 ενημερώνεται με τα κλειδιά και τις τιμές του dict2. Τα κλειδιά “banana” και “orange” υπάρχουν ήδη στο dict1, οπότε οι αντίστοιχες τιμές τους ενημερώνονται. Το τελικό αποτέλεσμα είναι η εκτύπωση του ενημερωμένου dict1.

[adinserter block=”4″]

Η μέθοδος values() επιστρέφει ένα αντικείμενο που περιέχει τις τιμές του λεξικού.

my_dict = {"apple": 2, "banana": 3, "cherry": 5}  # Δημιουργία ενός λεξικού με κλειδιά και τιμές

values = my_dict.values()  # Απόκτηση των τιμών του λεξικού χρησιμοποιώντας τη μέθοδο values()

print(values)  # Εκτύπωση των τιμών του λεξικού
# Αν εκτελέσετε αυτόν τον κώδικα, θα προκύψει η έξοδος: dict_values([2, 3, 5])

Στον παραπάνω κώδικα, δημιουργούμε ένα λεξικό my_dict με τρία κλειδιά (“apple”, “banana”, “cherry”) και τις αντίστοιχες τιμές (2, 3, 5). Στη συνέχεια, χρησιμοποιούμε τη μέθοδο values() για να αποκτήσουμε τις τιμές του λεξικού και τις αποθηκεύουμε στη μεταβλητή values. Τέλος, εκτυπώνουμε τη μεταβλητή values για να δούμε τις τιμές του λεξικού.

Οι παραπάνω μέθοδοι αποτελούν τα βασικά εργαλεία για την εργασία με λεξικά στην Python. Κάθε μία από αυτές τις μεθόδους παρέχει διαφορετικές λειτουργίες για τη διαχείριση και την επεξεργασία των δεδομένων που αποθηκεύονται σε ένα λεξικό. Ανάλογα με το πρόβλημα που θέλετε να λύσετε ή τη λειτουργία που θέλετε να επιτελέσετε, μπορείτε να επιλέξετε την κατάλληλη μέθοδο για να εργαστείτε με τα λεξικά σας.

Τα λεξικά είναι από τις πιο χρήσιμες και ευέλικτες δομές δεδομένων στην Python. Με την συνδυασμένη χρήση αυτών των μεθόδων και των βασικών δομών ελέγχου, όπως βρόχοι, συναρτήσεις και κλάσεις, μπορείτε να δημιουργήσετε πολύπλοκα και εύχρηστα προγράμματα για την επεξεργασία και την ανάλυση δεδομένων.

5 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων