Περισσότερα
Αντικατάσταση τιμών λεξικού Python
Έχω ένα λεξικό με 20.000 και πλέον καταχωρήσεις με προς το παρόν απλώς τη μοναδική λέξη και τον αριθμό των φορών που χρησιμοποιήθηκε η λέξη στο αρχικό κείμενο (η Θεία Κωμωδία του Δάντη στα ιταλικά).
Θα ήθελα να δουλέψω μέσα από όλες τις καταχωρήσεις αντικαθιστώντας την τιμή με έναν πραγματικό ορισμό καθώς τις βρίσκω. Υπάρχει ένας απλός τρόπος να επαναλάβω τις λέξεις-κλειδιά που έχουν ως τιμή έναν αριθμό προκειμένου να τον αντικαταστήσω (καθώς ερευνώ την έννοια);
Το λεξικό αρχίζει:
{'corse': 378, 'cielo,': 209, 'mute;': 16, 'torre,': 11, 'corsa': 53, 'assessin': 21, 'corso': 417, 'Tolomea': 21} # etc.
Ένα είδος εφαρμογής που θα προτείνει μια λέξη-κλειδί για έρευνα και ορισμό.
40
3
Δεν μπορείτε να επιλέξετε συγκεκριμένες τιμές (ή τύπους τιμών). Θα πρέπει είτε να κάνετε ένα αντίστροφο ευρετήριο (να αντιστοιχίσετε τους αριθμούς πίσω σε (λίστες) κλειδιών) είτε να κάνετε βρόχο σε όλες τις τιμές κάθε φορά.
Εάν έτσι κι αλλιώς επεξεργάζεστε αριθμούς με αυθαίρετη σειρά, μπορείτε κάλλιστα να κάνετε βρόχο σε όλα τα στοιχεία:
Διαφορετικά, θα χρησιμοποιούσα το αντίστροφο ευρετήριο:
Τώρα μπορείτε να αναζητήσετε τα κλειδιά με βάση την τιμή:
Αν κάνετε επανάληψη σε ένα λεξικό παίρνετε τα κλειδιά, οπότε αν υποθέσουμε ότι το λεξικό σας βρίσκεται σε μια μεταβλητή που ονομάζεται
data
και έχετε κάποια συνάρτησηfind_definition()
που παίρνει τον ορισμό, μπορείτε να κάνετε κάτι σαν το ακόλουθο:Εδώ είναι μια συνάρτηση που θα βρει το κλειδί σας και θα αντικαταστήσει την τιμή σας.
Η έξοδος είναι:
Αν διαπιστώσετε ότι χρειάζεται πολύς χρόνος για να διατρέξετε το λεξικό σας, δοκιμάστε μια συνάρτηση γεννήτριας:
Έξοδος: