Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

6.7 Αντιγραφή και εμφωλευμένα λεξίκα

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
original_dict = {"name": "John", "age": 30, "city": "New York"}
# Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy()
new_dict = original_dict.copy()
print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 30, 'city': 'New York'}
original_dict = {"name": "John", "age": 30, "city": "New York"} # Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy() new_dict = original_dict.copy() print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 30, 'city': 'New York'}
original_dict = {"name": "John", "age": 30, "city": "New York"}

# Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy()
new_dict = original_dict.copy()

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

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

Παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}
# Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy()
new_dict = my_dict.copy()
print('my_dict:', my_dict) # Εκτυπώνει το αρχικό λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'}
print('new_dict:', new_dict) # Εκτυπώνει το αντιγραμμένο λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'}
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'} # Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy() new_dict = my_dict.copy() print('my_dict:', my_dict) # Εκτυπώνει το αρχικό λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'} print('new_dict:', new_dict) # Εκτυπώνει το αντιγραμμένο λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'}
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}

# Αντιγραφή του λεξικού με τη χρήση της μεθόδου copy()
new_dict = my_dict.copy()

print('my_dict:', my_dict)  # Εκτυπώνει το αρχικό λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'}
print('new_dict:', new_dict)  # Εκτυπώνει το αντιγραμμένο λεξικό: {'name': 'John', 'age': 25, 'location': 'New York'}

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}
# Αντιγραφή του λεξικού
new_dict = dict(my_dict)
print('my_dict:', my_dict) # Εκτύπωση του αρχικού λεξικού
print('new_dict:', new_dict) # Εκτύπωση του νέου λεξικού
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'} # Αντιγραφή του λεξικού new_dict = dict(my_dict) print('my_dict:', my_dict) # Εκτύπωση του αρχικού λεξικού print('new_dict:', new_dict) # Εκτύπωση του νέου λεξικού
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}

# Αντιγραφή του λεξικού
new_dict = dict(my_dict)

print('my_dict:', my_dict)  # Εκτύπωση του αρχικού λεξικού
print('new_dict:', new_dict)  # Εκτύπωση του νέου λεξικού

Στο παραπάνω παράδειγμα, έχουμε ένα αρχικό λεξικό my_dict που περιέχει πληροφορίες για ένα άτομο. Χρησιμοποιούμε τη συνάρτηση dict() για να αντιγράψουμε το λεξικό και να δημιουργήσουμε ένα νέο λεξικό με την ίδια δομή και τις ίδιες τιμές. Στη συνέχεια, εκτυπώνουμε τόσο το αρχικό λεξικό my_dict όσο και το νέο λεξικό new_dict, για να δούμε τα αποτελέσματα.

Σωστή χρήση λέξεων: Τέλος, μπορείτε να χρησιμοποιήσετε τη σύνταξη {**original_dict} για να αντιγράψετε ένα λεξικό σε ένα νέο λεξικό.

Με την παραπάνω σύνταξη, μπορείτε να αντιγράψετε ένα λεξικό original_dict σε ένα νέο λεξικό, χρησιμοποιώντας τον ακόλουθο κώδικα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
new_dict = {**original_dict}
new_dict = {**original_dict}
new_dict = {**original_dict}

Η σύνταξη {**original_dict} είναι γνωστή ως “dictionary unpacking” και δημιουργεί ένα ανεξάρτητο αντίγραφο του αρχικού λεξικού. Μπορείτε να χρησιμοποιήσετε το new_dict για να εκτελέσετε τις επιθυμητές ενέργειες χωρίς να επηρεάσετε το αρχικό λεξικό original_dict.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}
# Αντιγραφή του λεξικού χρησιμοποιώντας τη σύνταξη **
new_dict = {**my_dict}
print('my_dict:', my_dict) # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'}
print('new_dict:', new_dict) # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'}
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'} # Αντιγραφή του λεξικού χρησιμοποιώντας τη σύνταξη ** new_dict = {**my_dict} print('my_dict:', my_dict) # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'} print('new_dict:', new_dict) # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'}
my_dict = {'name': 'John', 'age': 25, 'location': 'New York'}

# Αντιγραφή του λεξικού χρησιμοποιώντας τη σύνταξη **
new_dict = {**my_dict}

print('my_dict:', my_dict)  # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'}
print('new_dict:', new_dict)  # Εκτυπώνει: {'name': 'John', 'age': 25, 'location': 'New York'}

Στο παράδειγμα αυτό, το αρχικό λεξικό my_dict αντιγράφεται στο νέο λεξικό new_dict χρησιμοποιώντας τη σύνταξη **. Αυτή η διαδικασία δημιουργεί ένα νέο ανεξάρτητο λεξικό που περιέχει τα ίδια ζευγάρια κλειδιού-τιμής με το αρχικό λεξικό. Ο τελεστής ** αποσυσκευάζει τα στοιχεία του αρχικού λεξικού και τα προσθέτει στο νέο λεξικό.

[adinserter block=”2″]

Όταν αντιγράφετε ένα λεξικό με τους συνηθισμένους τρόπους στην Python, όπως η εκχώρηση (new_dict = original_dict) ή η χρήση της μεθόδου copy(), δεν δημιουργείται ένα ανεξάρτητο αντίγραφο του λεξικού. Αντ’ αυτού, δημιουργείται μια νέα αναφορά προς το ίδιο αντικείμενο λεξικού. Αυτό σημαίνει ότι αν κάνετε αλλαγές στο αρχικό λεξικό, οι αλλαγές θα επηρεάσουν επίσης το αντίγραφο.

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

Παρακάτω παρουσιάζονται παραδείγματα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Αντιγραφή με τη χρήση της μεθόδου dict()
original_dict = {"name": "John", "age": 30}
new_dict = dict(original_dict)
new_dict["age"] = 40
print(original_dict) # Εκτυπώνει: {'name': 'John', 'age': 30}
print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 40}
# Αντιγραφή με τη χρήση της μεθόδου copy.deepcopy()
import copy
original_dict =
{"name": "John", "age": 30}
new_dict = copy.deepcopy(original_dict)
new_dict["age"] = 40
print(original_dict) # Εκτυπώνει: {'name': 'John', 'age': 30}
print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 40}
# Αντιγραφή με τη χρήση της μεθόδου dict() original_dict = {"name": "John", "age": 30} new_dict = dict(original_dict) new_dict["age"] = 40 print(original_dict) # Εκτυπώνει: {'name': 'John', 'age': 30} print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 40} # Αντιγραφή με τη χρήση της μεθόδου copy.deepcopy() import copy original_dict = {"name": "John", "age": 30} new_dict = copy.deepcopy(original_dict) new_dict["age"] = 40 print(original_dict) # Εκτυπώνει: {'name': 'John', 'age': 30} print(new_dict) # Εκτυπώνει: {'name': 'John', 'age': 40}
# Αντιγραφή με τη χρήση της μεθόδου dict()
original_dict = {"name": "John", "age": 30}
new_dict = dict(original_dict)
new_dict["age"] = 40
print(original_dict)  # Εκτυπώνει: {'name': 'John', 'age': 30}
print(new_dict)  # Εκτυπώνει: {'name': 'John', 'age': 40}

# Αντιγραφή με τη χρήση της μεθόδου copy.deepcopy()
import copy
original_dict =

 {"name": "John", "age": 30}
new_dict = copy.deepcopy(original_dict)
new_dict["age"] = 40
print(original_dict)  # Εκτυπώνει: {'name': 'John', 'age': 30}
print(new_dict)  # Εκτυπώνει: {'name': 'John', 'age': 40}

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

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

Για παράδειγμα, μπορείτε να δημιουργήσετε ένα εμφωλευμένο λεξικό που περιέχει πληροφορίες για ένα προϊόν:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δημιουργία εμφωλευμένου λεξικού
product = {
"name": "Laptop",
"brand": "Dell",
"price": 700,
"specs": {
"CPU": "Intel Core i5",
"RAM": "8GB",
"storage": "256GB SSD"
}
}
# Εκτύπωση του εμφωλευμένου λεξικού
print(product)
# Δημιουργία εμφωλευμένου λεξικού product = { "name": "Laptop", "brand": "Dell", "price": 700, "specs": { "CPU": "Intel Core i5", "RAM": "8GB", "storage": "256GB SSD" } } # Εκτύπωση του εμφωλευμένου λεξικού print(product)
# Δημιουργία εμφωλευμένου λεξικού
product = {
  "name": "Laptop",
  "brand": "Dell",
  "price": 700,
  "specs": {
    "CPU": "Intel Core i5",
    "RAM": "8GB",
    "storage": "256GB SSD"
  }
}

# Εκτύπωση του εμφωλευμένου λεξικού
print(product)

Στο παραπάνω παράδειγμα, έχουμε ένα λεξικό με τις πληροφορίες ενός προϊόντος, συμπεριλαμβανομένων του ονόματος του προϊόντος, του κατασκευαστή, της τιμής και των προδιαγραφών του προϊόντος. Οι προδιαγραφές είναι επίσης ένα εμφωλευμένο λεξικό που περιέχει πληροφορίες για τον επεξεργαστή, τη μνήμη RAM και τον αποθηκευτικό χώρο του προϊόντος.

Για να αποκτήσετε πρόσβαση σε ένα στοιχείο στο εμφωλευμένο λεξικό, μπορείτε να χρησιμοποιήσετε τη σύνταξη με τα αγκύλη [key1][key2], όπου key1 είναι το όνομα του πρώτου λεξικού και key2 είναι το όνομα του δεύτερου λεξικού.

Για παράδειγμα, για να αποκτήσετε πρόσβαση στον επεξεργαστή του προϊόντος στο παραπάνω παράδειγμα, μπορείτε να γράψετε:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Πρόσβαση στο εμφωλευμένο λεξικό
cpu = product["specs"]["CPU"]
# Εκτύπωση του επεξεργαστή
print(cpu)
# Πρόσβαση στο εμφωλευμένο λεξικό cpu = product["specs"]["CPU"] # Εκτύπωση του επεξεργαστή print(cpu)
# Πρόσβαση στο εμφωλευμένο λεξικό
cpu = product["specs"]["CPU"]

# Εκτύπωση του επεξεργαστή
print(cpu)

Στο παραπάνω παράδειγμα, αποκτούμε πρόσβαση στις προδιαγραφές του προϊόντος χρησιμοποιώντας τη σύνταξη product["specs"]["CPU"], και αποθηκεύουμε το όνομα του επεξεργαστή στη μεταβλητή cpu. Έπειτα εκτυπώνουμε το όνομα του επεξεργαστή.

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

[adinserter block=”3″]

Επίσης, μπορείτε να προσθέσετε ένα νέο εμφωλευμένο λεξικό σε ένα υπάρχον λεξικό. Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δημιουργία νέου εμφωλευμένου λεξικού
new_specs = {
"GPU": "NVIDIA GeForce MX350",
"display": "14-inch FHD"
}
# Προσθήκη του νέου εμφωλευμένου λεξικού στο αρχικό λεξικό
product["specs"].update(new_specs)
# Εκτύπωση του αρχικού λεξικού με το νέο εμφωλευμένο λεξικό
print(product)
# Δημιουργία νέου εμφωλευμένου λεξικού new_specs = { "GPU": "NVIDIA GeForce MX350", "display": "14-inch FHD" } # Προσθήκη του νέου εμφωλευμένου λεξικού στο αρχικό λεξικό product["specs"].update(new_specs) # Εκτύπωση του αρχικού λεξικού με το νέο εμφωλευμένο λεξικό print(product)
# Δημιουργία νέου εμφωλευμένου λεξικού
new_specs = {
  "GPU": "NVIDIA GeForce MX350",
  "display": "14-inch FHD"
}

# Προσθήκη του νέου εμφωλευμένου λεξικού στο αρχικό λεξικό
product["specs"].update(new_specs)

# Εκτύπωση του αρχικού λεξικού με το νέο εμφωλευμένο λεξικό
print(product)

Στο παραπάνω παράδειγμα, δημιουργούμε ένα νέο εμφωλευμένο λεξικό που περιέχει πληροφορίες για την κάρτα γραφικών και την οθόνη του προϊόντος. Στη συνέχεια, προσθέτουμε το νέο εμφωλευμένο λεξικό στο αρχικό λεξικό, χρησιμοποιώντας τη μέθοδο update(). Τέλος, εκτυπώνουμε το αρχικό λεξικό με το νέο εμφωλευμένο λεξικό.

Σημειώστε ότι μπορείτε να προσθέσετε και άλλα επίπεδα εμφωλευμένων λεξικών στο αρχικό λεξικό, όπως και να διαγράψετε ή να τροποποιήσετε υπάρχοντα στοιχεία στο εμφωλευμένο λεξικό, χρησιμοποιώντας κατάλληλες μεθόδους και σύνταξη ανάκτησης

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Δημιουργία αντιγράφου του εμφωλευμένου λεξικού
specs_copy = product["specs"].copy()
# Προσθήκη νέου στοιχείου στο αντίγραφο του εμφωλευμένου λεξικού
specs_copy["battery"] = "42Wh"
# Εκτύπωση του αντιγράφου και του αρχικού εμφωλευμένου λεξικού
print(specs_copy)
print(product["specs"])
# Δημιουργία αντιγράφου του εμφωλευμένου λεξικού specs_copy = product["specs"].copy() # Προσθήκη νέου στοιχείου στο αντίγραφο του εμφωλευμένου λεξικού specs_copy["battery"] = "42Wh" # Εκτύπωση του αντιγράφου και του αρχικού εμφωλευμένου λεξικού print(specs_copy) print(product["specs"])
# Δημιουργία αντιγράφου του εμφωλευμένου λεξικού
specs_copy = product["specs"].copy()

# Προσθήκη νέου στοιχείου στο αντίγραφο του εμφωλευμένου λεξικού
specs_copy["battery"] = "42Wh"

# Εκτύπωση του αντιγράφου και του αρχικού εμφωλευμένου λεξικού
print(specs_copy)
print(product["specs"])

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

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