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

Σε αυτό το άρθρο, σας παρουσιάζουμε τη συνεργασία με το λεξικό python.
Δημιουργία λεξικού
Υπάρχουν διάφοροι τρόποι δημιουργίας ενός λεξικού python. Η απλούστερη χρήση αρχικοποίησης στηρίγματος, με σύνταξη θυμίζει JSON Πώς να αποκτήσετε Python και JavaScript για επικοινωνία χρησιμοποιώντας το JSONΣήμερα θα σας δείξω πώς να χρησιμοποιήσετε το JSON για να στείλετε δεδομένα από το JavaScript στην Python. Θα καλύψω τον τρόπο εγκατάστασης ενός διακομιστή ιστού, μαζί με όλο τον κώδικα που χρειάζεστε. Διαβάστε περισσότερα .
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27}
Μπορείτε επίσης να χρησιμοποιήσετε αριθμούς ως πλήκτρα. Ωστόσο, να είστε προσεκτικοί χρησιμοποιώντας αριθμούς κινητής υποδιαστολής ως πλήκτρα, καθώς το
Ο υπολογιστής τα αποθηκεύει ως προσεγγίσεις Όλα όσα πρέπει να ξέρετε για τη μνήμη RAM και τη μνήμηΗ μνήμη RAM είναι η βραχυπρόθεσμη μνήμη του υπολογιστή σας. Ως εκ τούτου, η διαχείριση μνήμης έχει σημαντικό αντίκτυπο στην απόδοση του συστήματος. Εδώ εξηγούμε πώς λειτουργεί η RAM και αν μπορείτε να κάνετε οτιδήποτε για να αυξήσετε την αποδοτικότητά της. Διαβάστε περισσότερα .rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} εκτύπωση rain_percent. εκτύπωση rain_percent [1980] # εκτυπώσεις. {1980: '17%', 1981: '15%', 1982: '10%'} 17%
Καθορισμός ζεύγη κλειδιού-τιμής
Μπορείτε επίσης να δημιουργήσετε και να προετοιμάσετε ένα λεξικό χρησιμοποιώντας ζεύγη τιμών ονόματος ως ορίσματα λέξεων-κλειδιών στο υπαγόρευση () κατασκευαστής.
πληθυσμός = υπαγόρευση (Καλιφόρνια = 37253956, Κολοράντο = 5029196, Κονέκτικατ = 3574097, Ντελαγουέρ = 897934) πληθυσμός εκτύπωσης. # εκτυπώσεις. {"Κοννέκτικατ": 3574097, "Ντέλαγουερ": 897934, "Καλιφόρνια": 37253956, "Κολοράντο": 5029196}
Διάταξη κλειδιών-τιμής
Ένας άλλος τρόπος για να δημιουργήσετε ένα λεξικό είναι να χρησιμοποιήσετε μια σειρά από πλειάδες κλειδιού-τιμής. Εδώ είναι το ίδιο παράδειγμα όπως παραπάνω.
ζευγάρια = [(«Καλιφόρνια», 37253956), («Κολοράντο», 5029196), («Κοννέκτικατ», 3574097), («Ντέλαγουερ», 897934)] πληθυσμός = υπαγόρευση (ζεύγη) πληθυσμός εκτύπωσης. # εκτυπώσεις. {"Κοννέκτικατ": 3574097, "Ντέλαγουερ": 897934, "Καλιφόρνια": 37253956, "Κολοράντο": 5029196}
Κατανόηση Dict
Η κατανόηση Dict παρέχει μια δροσερή σύνταξη για την προετοιμασία μιας υπαγόρευσης εάν μπορείτε να υπολογίσετε τις τιμές με βάση τα πλήκτρα. Το παρακάτω αρχικοποιεί μια υπαγόρευση αριθμών και τετραγωνικών τιμών για ένα εύρος αριθμών.
εκτύπωση {x: x ** 2 για x in xrange (10, 20)} # εκτυπώσεις. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
Πώς λειτουργεί; Το τελευταίο μέρος (για x σε xrange (10, 20)) επιστρέφει μια σειρά αριθμών στο καθορισμένο εύρος. Το μέρος κατανόησης υπαγόρευσης ({x: x ** 2 ..}) βγαίνει σε αυτό το εύρος και αρχικοποιεί το λεξικό.
Εργασία με λεξικό Python
Τι μπορείτε να κάνετε με τα λεξικά μόλις τα δημιουργήσετε; Λοιπόν, μπορείτε να αποκτήσετε πρόσβαση σε στοιχεία, να ενημερώσετε τιμές, να διαγράψετε στοιχεία κ.λπ.
Πρόσβαση στα στοιχεία λεξικού Python
Αποκτήστε πρόσβαση σε ένα στοιχείο υπαγόρευσης χρησιμοποιώντας το κλειδί εντός παρενθέσεων, όπως θα κάνατε ένας πίνακας ή μια λίστα Πώς λειτουργούν οι πίνακες και οι λίστες στο PythonΟι πίνακες και οι λίστες είναι μερικές από τις πιο χρήσιμες δομές δεδομένων στον προγραμματισμό - αν και λίγοι άνθρωποι τις χρησιμοποιούν στο μέγιστο των δυνατοτήτων τους. Διαβάστε περισσότερα .
πληθυσμός εκτύπωσης ['Delaware'] # εκτυπώσεις. 897934.
Εάν το κλειδί είναι αριθμός, δεν χρειάζεστε τα εισαγωγικά. Η έκφραση τότε φαίνεται να μοιάζει με λίστα ή ευρετήριο πίνακα.
εκτύπωση rain_percent [1980] # εκτυπώσεις. 17%
Ο τύπος του κλειδιού κατά την πρόσβαση πρέπει να ταιριάζει με αυτό που είναι αποθηκευμένο στο λεξικό Python. Τα ακόλουθα προκαλούν σφάλμα, καθώς τα αποθηκευμένα κλειδιά είναι αριθμοί, ενώ το κλειδί πρόσβασης είναι συμβολοσειρά.
x = «1980» εκτύπωση rain_percent [x] # αποτελέσματα σε 1 x = '1980' > 2 εκτύπωση rain_percent [x] KeyError: '1980'
Πρόσβαση σε ανύπαρκτο κλειδί είναι ένα σφάλμα.
rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} εκτύπωση rain_percent [1983] # εκτυπώσεις 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '10% '} > 2 print rain_percent [1983] KeyError: 1983.
Για να αποκτήσετε πρόσβαση σε ένα κλειδί και να δώσετε μια προεπιλεγμένη τιμή εάν δεν υπάρχει η αντιστοίχιση, χρησιμοποιήστε το παίρνω() μέθοδος με προεπιλεγμένη τιμή ως το δεύτερο όρισμα.
εκτύπωση rain_percent.get (1985, '0%') # εκτυπώσεις. 0%
Έλεγχος Ύπαρξης
Τι γίνεται αν θέλετε να ελέγξετε την παρουσία ενός κλειδιού χωρίς να προσπαθήσετε πραγματικά να αποκτήσετε πρόσβαση σε αυτό (και πιθανώς να συναντήσετε ένα Σφάλμα κλειδιού όπως παραπάνω)? Μπορείτε να χρησιμοποιήσετε το σε λέξη-κλειδί στη φόρμα κλειδί σε dct που επιστρέφει ένα boolean.
εκτύπωση 1980 σε rain_percent. εκτύπωση «1980» σε rain_percent. # εκτυπώσεις. Αληθής. Ψευδής.
Αντιστρέψτε τη συνθήκη (δηλαδή βεβαιωθείτε ότι το κλειδί δεν υπάρχει στο λεξικό Python) χρησιμοποιώντας τη φόρμα κλειδί όχι σε dct. Αυτό ισοδυναμεί με την τυπική άρνηση του πύθωνα όχι κλειδί στο dct.
εκτύπωση 1980 όχι σε rain_percent. εκτύπωση 1985 όχι σε rain_percent. # εκτυπώσεις. Ψευδής. Αληθής.
Τροποποίηση στοιχείων
Αλλάξτε την τιμή εκχωρώντας στο απαιτούμενο κλειδί.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} χρήστες ['ηλικία'] = 29. χρήστες εκτύπωσης. # εκτυπώσεις. {'επώνυμο': 'Smith', 'age': 29, 'firstname': 'John'}
Χρησιμοποιήστε την ίδια σύνταξη για να προσθέσετε μια νέα αντιστοίχιση στο λεξικό Python.
χρήστες ['dob'] = '15 -sep-1971 ' χρήστες εκτύπωσης. # εκτυπώσεις. {'dob': '15 -sep-1971 ',' επώνυμο ':' Smith ',' age ': 29,' firstname ':' John '}
Ενημερώστε πολλά στοιχεία ενός λεξικού σε μία λήψη χρησιμοποιώντας το εκσυγχρονίζω() μέθοδος.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} users.update ({'ηλικία': 29, 'dob': '15 -sep-1971 '}) χρήστες εκτύπωσης. # εκτυπώσεις. {'dob': '15 -sep-1971 ',' επώνυμο ':' Smith ',' age ': 29,' firstname ':' John '}
Ορίστε μια προεπιλεγμένη τιμή για χρήση ενός κλειδιού setdefault (). Αυτή η μέθοδος ορίζει την τιμή για το κλειδί εάν δεν υπάρχει αντιστοίχιση. Επιστρέφει την τρέχουσα τιμή.
# δεν αλλάζει την τρέχουσα τιμή. print users.setdefault («όνομα πρώτου», «Jane») # εκτυπώσεις. Ο John # ορίζει τιμή. print users.setdefault («πόλη», «NY») # εκτυπώσεις. NY # Τελική τιμή. χρήστες εκτύπωσης. # εκτυπώσεις. {'επώνυμο': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}
Διαγραφή στοιχείων
Διαγράψτε τις αντιστοιχίσεις στο λεξικό χρησιμοποιώντας το δελ χειριστής. Αυτός ο χειριστής δεν επιστρέφει τίποτα.
Θα συναντήσετε ένα Σφάλμα κλειδιού εάν το κλειδί δεν υπάρχει στο λεξικό.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} del χρήστες ['ηλικία'] χρήστες εκτύπωσης. # εκτυπώσεις. {'επώνυμο': 'Smith', 'firstname': 'John'}
Χρησιμοποιήστε το κρότος() Αντίθετα, όταν θέλετε να διαγράψετε ξανά τη διαγραμμένη τιμή.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} print users.pop («ηλικία») χρήστες εκτύπωσης. # εκτυπώσεις. 27. {'επώνυμο': 'Smith', 'firstname': 'John'}
Τι γίνεται αν θέλετε να διαγράψετε ένα κλειδί εάν υπάρχει, χωρίς να προκαλεί σφάλμα εάν δεν υπάρχει; Μπορείς να χρησιμοποιήσεις κρότος() και καθορίστε Κανένας για το δεύτερο επιχείρημα ως εξής:
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} users.pop ('foo', Κανένα) χρήστες εκτύπωσης. # εκτυπώσεις. {'επώνυμο': 'Smith', 'age': 27, 'firstname': 'John'}
Και εδώ είναι ένα μονόγραμμο για να διαγράψετε μια δέσμη κλειδιών από ένα λεξικό χωρίς να προκαλέσετε σφάλμα σε ανύπαρκτα κλειδιά.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27, 'dob': '15 -sep-1971 '} χάρτης (lambda x: users.pop (x, None), ['age', 'foo', 'dob']) χρήστες εκτύπωσης.
Θέλετε να διαγράψετε όλα τα κλειδιά από ένα λεξικό; Χρησιμοποιήστε το Σαφή() μέθοδος.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} users.clear () χρήστες εκτύπωσης. # εκτυπώσεις. {}
Βρόχος με λεξικά Python
Η Python παρέχει πολλά μέθοδοι βρόχου Πώς λειτουργούν οι βρόχοι Do-While στον προγραμματισμό υπολογιστώνΟι βρόχοι είναι ένας από τους πρώτους τύπους ελέγχου που θα μάθετε στον προγραμματισμό. Πιθανότατα γνωρίζετε για το καιρό για βρόχους, αλλά τι επιτυγχάνει ο βρόχος do-while; Διαβάστε περισσότερα πάνω από τις καταχωρήσεις ενός λεξικού. Διαλέξτε ένα για να ταιριάζει στις ανάγκες σας.
Πλήκτρα
- Η απλούστερη μέθοδος επεξεργασίας κλειδιών (και πιθανώς τιμών) με τη σειρά χρησιμοποιεί έναν βρόχο της φόρμας:
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για k σε χρήστες: print k, '=>', χρήστες [k] # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
- Χρησιμοποιώντας τη μέθοδο iterkeys () λειτουργεί ακριβώς το ίδιο όπως παραπάνω. Επιλέξτε τη φόρμα που θέλετε να χρησιμοποιήσετε.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για k in users.iterkeys (): print k, '=>', χρήστες [k] # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
- Μια τρίτη μέθοδος ανάκτησης και επεξεργασίας κλειδιών σε έναν βρόχο περιλαμβάνει τη χρήση της ενσωματωμένης συνάρτησης iter ().
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για k in iter (χρήστες): εκτύπωση k, '=>', χρήστες [k] # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
- Όταν χρειάζεστε το ευρετήριο του κλειδιού που υποβάλλεται σε επεξεργασία, χρησιμοποιήστε το απαριθμώ() ενσωματωμένη λειτουργία όπως φαίνεται.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για ευρετήριο, κλειδί σε απαρίθμηση (χρήστες): ευρετήριο εκτύπωσης, κλειδί, '=>', χρήστες [k] # εκτυπώσεις. 0 επώνυμο => Τζον. 1 ηλικία => Τζον. 2 Όνομα => Τζον.
Επανάληψη ζευγών κλειδί-τιμής
- Όταν θέλετε να ανακτήσετε κάθε ζεύγος κλειδιού-τιμής με μία μόνο κλήση, χρησιμοποιήστε το iteritems ().
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για k, v σε users.iteritems (): print k, '=>', v. # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
Επανάληψη τιμών
- Η μέθοδος itervalues () μπορεί να χρησιμοποιηθεί για επανάληψη όλων των τιμών στο λεξικό. Αν και αυτή η μέθοδος μοιάζει με έναν βρόχο που χρησιμοποιεί αξίες(), είναι πιο αποτελεσματικό αφού δεν εξάγει όλες τις τιμές ταυτόχρονα.
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για τιμή στο users.itervalues (): τιμή εκτύπωσης. # εκτυπώσεις. Σιδηρουργός. 27. Γιάννης.
Εξαγωγή συστοιχιών
Οι ακόλουθες μέθοδοι περιγράφουν την εξαγωγή διαφόρων πληροφοριών λεξικού Python σε μορφή πίνακα. Η προκύπτουσα συστοιχία μπορεί να περιστραφεί χρησιμοποιώντας κανονικές κατασκευές python. Ωστόσο, λάβετε υπόψη ότι ο πίνακας που επιστρέφεται μπορεί να είναι μεγάλος ανάλογα με το μέγεθος του λεξικού. Άρα μπορεί να είναι περισσότερο ακριβό (με μνήμη) να επεξεργαστείτε αυτές τις συστοιχίες παρά να χρησιμοποιήσετε τις παραπάνω μεθόδους επαναλήψεων.
Μία περίπτωση όπου είναι αποδεκτό να εργαστείτε με αυτές τις συστοιχίες είναι όταν πρέπει να διαγράψετε στοιχεία από το λεξικό καθώς συναντάτε ανεπιθύμητα στοιχεία. Η εργασία με έναν επαναληπτή κατά την τροποποίηση του λεξικού ενδέχεται να προκαλέσει σφάλμα χρόνου εκτέλεσης.
- Η μέθοδος αντικείμενα () επιστρέφει έναν πίνακα πλειάδων κλειδιού-τιμής. Μπορείτε να επαναλάβετε αυτά τα ζεύγη τιμών-κλειδιών όπως φαίνεται:
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} για k, v στο users.items (): print k, '=>', v. # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
- Ανακτήστε όλα τα πλήκτρα στο λεξικό χρησιμοποιώντας τη μέθοδο κλειδιά ().
users = {'firstname': 'John', 'lastname': 'Smith', 'ηλικία': 27} print users.keys () # εκτυπώσεις. [«επώνυμο», «ηλικία», «όνομα»
Χρησιμοποιήστε την επιστρεφόμενη συστοιχία για να μετακινηθείτε στα πλήκτρα
για k in users.keys (): print k, '=>', χρήστες [k] # εκτυπώσεις. επώνυμο => Σμιθ. ηλικία => 27. Όνομα => Τζον.
- Με παρόμοιο τρόπο, χρησιμοποιήστε τη μέθοδο αξίες() για να ανακτήσετε όλες τις τιμές στο λεξικό.
για τιμή σε users.values (): τιμή εκτύπωσης. # εκτυπώσεις. Σιδηρουργός. 27. Γιάννης.
Πώς χρησιμοποιείτε λεξικά Python;
Προσπαθήσαμε να καλύψουμε τις πιο κοινές περιπτώσεις χρήσης για λεξικά python σε αυτό το άρθρο. Φροντίστε να δείτε όλα μας άλλα άρθρα της Python 10 βασικά παραδείγματα Python που θα σας βοηθήσουν να μάθετε γρήγοραΑυτό το άρθρο με βασικά παραδείγματα python είναι για όσους έχουν ήδη κάποια εμπειρία προγραμματισμού και θέλουν απλώς να μεταβούν στην Python το συντομότερο δυνατό. Διαβάστε περισσότερα για ακόμη περισσότερες συμβουλές για την Python 5 μαθήματα που θα σας μεταφέρουν από το Python Beginner στο ProΑυτά τα πέντε μαθήματα θα σας διδάξουν όλα σχετικά με τον προγραμματισμό στο Python, μια από τις πιο καυτές γλώσσες εκεί έξω αυτή τη στιγμή. Διαβάστε περισσότερα . Εάν έχετε άλλες περιπτώσεις χρήσης που πιστεύετε ότι πρέπει να συμπεριληφθούν, ενημερώστε μας στα παρακάτω σχόλια!
Συντελεστές εικόνας: viper345 / Shutterstock